وحدة - رسم فاصل/خط تقسيم Android في التنسيق؟




كيفية ضبط الابعاد في الاوتوكاد (18)

أرغب في رسم خط في وسط المخطط مباشرةً واستخدامه كفاصل لعناصر أخرى مثل TextView. هل هناك قطعة جيدة لهذا. لا أريد حقًا استخدام صورة لأنه سيكون من الصعب مطابقة المكونات الأخرى بها. وأريد أن تكون في وضع نسبي كذلك. شكر


أضف linearLayout أفقيًا مثل هذا.

<LinearLayout
    android:id="@+id/LL_Seperator"
    android:layout_width="1dp"
    android:layout_height="fill_parent"
    android:layout_marginRight="5dp"
    android:layout_toLeftOf="@+id/imgBut_Settings"
    android:background="#37000000"
    android:orientation="horizontal" >
</LinearLayout>

أضف هذا في المخطط الذي تريد فيه الحاجز (قم بتعديل السمات لتناسب حاجتك):

<ImageView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@android:drawable/divider_horizontal_dark"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:scaleType="fitXY"
    android:paddingLeft="5dp"
    android:paddingRight="5dp"
    android:paddingBottom="2dp"
    android:paddingTop="2dp" />

إذا كنت ستستخدمها كثيرًا ، فكل ما عليك فعله هو الأفضل

styles.xml:

<style name="Seperator">
        <item name="android:layout_width">match_parent</item>
        <item name="android:layout_height">1dp</item>
        <item name="android:background">@color/light_color</item>
    </style>

الآن في التخطيط الخاص بك ، فقط إضافته مثل:

<View style="@style/Seperator" />

إصدار وقت التشغيل:

View dividerView = new View(getContext());
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
    ViewGroup.LayoutParams.FILL_PARENT, UIUtils.dpToPix(getContext(), 1));
dividerView.setLayoutParams(lp);

TypedArray array = getContext().getTheme()
    .obtainStyledAttributes(new int[] {android.R.attr.listDivider});
Drawable draw = array.getDrawable(0);       
array.recycle();

dividerView.setBackgroundDrawable(draw);
mParentLayout.addView(dividerView);

إضافة هذا الرأي ترسم textviews بين textviews

<View
    android:layout_width="match_parent"
    android:layout_height="1dp"
    android:background="#000000" />

استخدم هذا الكود. سوف يساعد

<LinearLayout
    android:layout_width="0dip"
    android:layout_height="match_parent"
    android:layout_gravity="center"
    android:layout_weight="1"
    android:divider="?android:dividerHorizontal"
    android:gravity="center"
    android:orientation="vertical"
    android:showDividers="middle" >

سيساعدك هذا على حل هذه المشكلة. هنا يتم إنشاء عرض صغير لإنشاء خط أسود كفاصل بين طريقتي عرض.

 <View
        android:layout_width="3dp"
        android:layout_height="wrap_content"
        android:background="@android:color/black"
         />

عادة ما أستخدم هذا الرمز لإضافة خط أفقي:

<View
    android:layout_width="match_parent"
    android:layout_height="1dp"
    android:background="@android:color/darker_gray"/>

لإضافة فاصل رأسي ، قم layout_width قيم layout_width و layout_height


على سبيل المثال ، إذا استخدمت recyclerView لعناصرك:

في كتابة build.gradle:

dependencies {
    compile 'com.yqritc:recyclerview-flexibledivider:1.4.0'

إذا كنت ترغب في تعيين قيم اللون والحجم والهامش ، فيمكنك تحديد ما يلي:

RecyclerView recyclerView = (RecyclerView) 
findViewById(R.id.recyclerview);
recyclerView.addItemDecoration(
        new HorizontalDividerItemDecoration.Builder(this)
                .color(Color.RED)
                .sizeResId(R.dimen.divider)
                .marginResId(R.dimen.leftmargin, R.dimen.rightmargin)
                .build());

فقط اكتب هذا:

 android:divider="?android:dividerHorizontal"
 android:showDividers="middle"

المثال الكامل:

<LinearLayout
        android:id="@+id/llTipInformation"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/tvServiceRating"
        android:orientation="horizontal"
        android:divider="?android:dividerHorizontal"
        android:layout_marginTop="@dimen/activity_horizontal_margin"
        android:showDividers="middle">

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center"
            android:text="@string/main.msg.tippercent"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textColor="@color/colorWhite"
            android:layout_marginTop="@dimen/activity_vertical_margin"/>
        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center"
            android:text="@string/main.msg.tiptotal"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textColor="@color/colorWhite"
            android:layout_marginTop="@dimen/activity_vertical_margin"/>

</LinearLayout>

في الحالات التي يستخدم فيها الشخص android:layout_weight property لتعيين مساحة الشاشة المتاحة لمكونات التخطيط ، على سبيل المثال

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">

    <LinearLayout
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="match_parent"
        android:orientation="vertical">
        ...
        ...
    </LinearLayout>

     /* And we want to add a verical separator here */

    <LinearLayout
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="match_parent"
        android:orientation="vertical">
        ...
        ...
     </LinearLayout>

</LinearLayout>

لإضافة فاصل بين التخطيطين الحاليين اللذين استحوذا على مساحة الشاشة بأكملها بالفعل ، لا يمكننا إضافة خط LinearLayout آخر مع android:weight:"1" لأن ذلك سيجعل ثلاثة أعمدة متساوية العرض لا نريدها. وبدلاً من ذلك ، سنقلل من المساحة التي سنمنحها لهذا التصميم الجديد. قد تبدو الشفرة النهائية كما يلي:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">

    <LinearLayout
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="match_parent"
        android:orientation="vertical">
        ...
        ...
    </LinearLayout>

                    /* *************** ********************** */

    /* Add another LinearLayout with android:layout_weight="0.01" and 
       android:background="#your_choice" */
    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="0.01"
        android:background="@android:color/darker_gray"
     />

    /* Or View can be used */
    <View
        android:layout_width="1dp"
        android:layout_height="match_parent"
        android:layout_marginTop="16dp"
        android:background="@android:color/darker_gray"
     />

                     /* *************** ********************** */

    <LinearLayout
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="match_parent"
        android:orientation="vertical">
        ...
        ...
    </LinearLayout>

</LinearLayout>


قسم المساحة في قسمين متساويين:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:divider="?android:dividerHorizontal"
        android:showDividers="end"></LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"></LinearLayout>

</LinearLayout>

لاحظ أن جزءًا واحدًا يحتوي على حاجز في النهاية


لتحسين الإجابات المقدمة من كوتشرينكو ودان دار 3

أضفت هذا إلى أساليبي:

<style name="Divider">
    <item name="android:layout_width">match_parent</item>
    <item name="android:layout_height">1dp</item>
    <item name="android:background">?android:attr/listDivider</item>
</style>

ثم في تخطيطاتي أقل رمز وأبسط للقراءة.

<View style="@style/Divider"/>

هنا هو إجابتك .. هذا مثال لرسم خط بين الضوابط ...

<TextView
            android:id="@+id/textView1"
            style="@style/behindMenuItemLabel1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="1dp"
            android:text="FaceBook Feeds" />

         <View
             android:layout_width="fill_parent"
             android:layout_height="2dp"
             android:background="#d13033"/>

         <ListView
            android:id="@+id/list1"
            android:layout_width="350dp"
            android:layout_height="50dp" />

هذا الرمز رسم خط بين عنصري تحكم ...


استخدم رمز xml هذا لإضافة خط عمودي

 <View
    android:layout_width="1dp"
    android:layout_height="match_parent"
    android:layout_centerVertical="true"
    android:background="#000000" />

استخدم رمز xml هذا لإضافة خط أفقي

<View
    android:layout_width="match_parent"
    android:layout_height="1dp"
    android:background="#000000" />

حل بسيط

ما عليك سوى إضافة هذا الرمز في تنسيقك واستبدال "Id_of__view_present_above" بمعرّف الملف الشخصي ، الذي تحتاج أدناه إلى الحاجز.

<TextView
  android:layout_width="match_parent"
  android:layout_height="1dp"
  android:background="#c0c0c0"
  android:id="@+id/your_id"
  android:layout_marginTop="16dp" 
  android:layout_below="@+id/Id_of__view_present_above"
/>

<TextView
    android:id="@+id/line"
    style="?android:attr/listSeparatorTextViewStyle"
    android:paddingTop="5dip"
    android:gravity="center_horizontal"
    android:layout_below="@+id/connect_help"
    android:layout_width="match_parent"
    android:layout_height="1dp"
    android:background="#000" />

<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<item
    android:bottom="0dp"
    android:left="-2dp"
    android:right="-2dp"
    android:top="-2dp">
    <shape android:shape="rectangle">
        <stroke
            android:width="1dp"
            android:color="@color/divider" />
    </shape>
</item>







draw