وحدة - رسم فاصل/خط تقسيم Android في التنسيق؟
كيفية ضبط الابعاد في الاوتوكاد (18)
أضف 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>
أرغب في رسم خط في وسط المخطط مباشرةً واستخدامه كفاصل لعناصر أخرى مثل TextView. هل هناك قطعة جيدة لهذا. لا أريد حقًا استخدام صورة لأنه سيكون من الصعب مطابقة المكونات الأخرى بها. وأريد أن تكون في وضع نسبي كذلك. شكر
أضف هذا في المخطط الذي تريد فيه الحاجز (قم بتعديل السمات لتناسب حاجتك):
<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>