سؤال

اريد توليد أ ListView هذا له بعض المقسمات بين بعض الإدخالات ، كما يمكن رؤيتها في بعض أقسام الممتلكات. انظر المثال أدناه. أحاول توليد أ List يتكون من البعض TextViews تليها أحد الفواصل الفاخرة التي تشرح الجزء التالي من القائمة ثم مرة أخرى بعض طرق عرض النص. كيف يمكن القيام بذلك؟ فكرت في إنشاء وجهات نظر مختلفة لإضافتها إلى القائمة؟ هل هذا هو الطريق للذهاب؟

هل كانت مفيدة؟

المحلول

حصلت على حل. لا أعرف ما إذا كان هذا هو الأفضل.

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

إذا كنت لا تريد خلط الرأس في أحد صفوفك. النظر في الحل التالي:

يمكنك الكتابة فوق الطريقتين getItemViewType و getViewTyPecount. لديك الآن قائمة يمكنها عرض صفوف مختلفة. تحتاج إلى التحقق من نوع العرض المتوقع للعنصر في طريقة GetView وتضخيم تخطيطات مختلفة اعتمادًا عليها.

ستتعامل القائمة مع إعادة التدوير لك بطريقة ستُرجع فقط طرق عرض إعادة التدوير الصحيحة إلى طريقة GetView الخاصة بك ، وهذا يعني أنه إذا لم تكن إعادة تدوير Null ، يمكن استخدامها لعرض خليةك الحالية.

نصائح أخرى

يمكنك استخدام بلدي SectionedAdapter, ، إذا كان GPLV3 مقبولًا (مرخصًا بهذه الطريقة بسبب بعض التعليمات البرمجية المنبع). يمكنك استخدام بلدي MergeAdapter, ، إذا كنت بحاجة إلى شيء أكثر مرونة وبترخيص أقل تحديدًا (Apache 2).

أعتقد أنك قد تبحث عن Android.widget.expandableListView

http://developer.android.com/reference/android/widget/expandablilestview.html

أنا مهتم أيضًا بإجابة على هذا. يجب أن يكون هناك طريقة أكثر وضوحا للقيام بذلك.

عند النظر إلى المحول ، هناك طريقة ، adapter.getItemViewType (موضع int).

يحدد ListView قيمة الإرجاع ، item_view_type_header_or_footer الذي يشير إلى ما إذا كان العنصر الذي تم إرجاعه هو رأس أو تذييل.

لم أجربها ، لكنني أفترض أنه إذا قمت بإنشاء محول خاص بك وإرجاع عنصر مع النوع الذي يشير إلى أنه رأس أو تذييل ، فإن ListView ستعرضه بشكل مناسب.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top