سؤال

لا يبدو لي أن أحصل على مقسم مخصص ، باستخدام رسم قابل للرقابة ، للعمل عند استخدام أ ListActivity وعدم إنشاء العرف ListView. يبدو الأمر تقريبًا عندما يخلق VM خاص به ListView بالنسبة لي مع ListActivity, ، يستخدم سمة مع المقسم الافتراضي المقدم ؛ وإذا حاولت تقديم واحدة ، فلا تظهر فواصل في ListView على الاطلاق.

أعلم أنه يمكنني إنشاء مخصص ListView باستخدام XML وتحديد Android: مقسم على ذلك ListView, ، وهذا يتعرف على مقسمتي المخصصة القابلة للرسمية. لكني أفضل أن أترك ListActivity إنشاء خاص بها ListView, ، إذا كان بإمكاني معرفة كيفية عمل المقسم الخاص بي.

إليك الرمز الذي أستخدمه الآن:

public class Categories extends ListActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        final String[] OPTIONS = {
            "Hello",
            "Goodbye",
            "Good Morning",
            "Greetings",
            "Toodaloo"
        };

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(
            this, android.R.layout.simple_list_item_1, OPTIONS);
        setListAdapter(adapter);

        ListView lv = getListView();
        PaintDrawable sage = new PaintDrawable(R.drawable.sage);
        lv.setDivider(sage);
        lv.setDividerHeight(1);
    }
}
هل كانت مفيدة؟

المحلول

اكتشفتها. لا علاقة للمسألة مع القائمة التي تولد قائمة عرض لي. كان في كيفية تعريف المقسم في كود Java.

هناك طريقتان أراها لتحديد المقسم (الحدود بين صفوف ListView) على عرض قائمة يتم تضخيمها تلقائيًا من قائمة النشاط ، إذا كنت تريد تحديد اللون في XML:

طريقة 1:

في الدقة/القيم/colors.xml ، ضع ما يلي:

<resources>
 <color name="sage">#cceebb</color>
</resources>

في فئة التمدد في القائمة الخاصة بك ، قم بذلك:

ListView lv = getListView();
ColorDrawable sage = new ColorDrawable(this.getResources().getColor(R.color.sage));
lv.setDivider(sage);
lv.setDividerHeight(1);

الطريقة 2:

في الدقة/القيم/الألوان. xml:

<resources>
 <drawable name="sage">#cceebb</drawable>
</resources>

وفي فصلك الذي يمتد إلى قائمة القائمة:

ListView lv = getListView();
ColorDrawable sage = new ColorDrawable(this.getResources().getColor(R.drawable.sage));
lv.setDivider(sage);
lv.setDividerHeight(1);

نصائح أخرى

لتعيين مقسم في ListView برمجيًا:

وضعت هذه الرمز في الداخل في الخاص بك . جافا فصل

   ListView lv = (ListView) findViewById(R.id.lv);
   lv.setDivider(getResources().getDrawable(R.drawable.drawable_divider));
   lv.setDividerHeight(1);

إنشاء السحب: {res> drawable> drawable_divider.xml}

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"

    android:shape="rectangle">

    <solid android:color="#ececec"></solid>

</shape>

جرب هذا الرمز:

searchText.setBackgroundColor(getResources().getColor(R.color.wordColorBlack));
ListView lv = getListView();
lv.setDivider(getResources().getDrawable(R.drawable.divider2));
lv.setDividerHeight(2);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top