"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية إضافة رؤوس وتذييلات إلى Recyclerview؟

كيفية إضافة رؤوس وتذييلات إلى Recyclerview؟

نشر في 2025-03-24
تصفح:316

How to add Headers and Footers to a RecyclerView?

تخصيص Recyclerview مع الرؤوس وتذييلات هذا يعزز تجربة المستخدم من خلال توفير معلومات إضافية أو عناصر التنقل. على سبيل المثال ، في مقتطف الرمز المقدم ، تضيف الأسطر التالية رأسًا:

layoutinflater inflater = (layoutinflater) getActivity (). getSystemService (context.layout_inflater_service) ؛ HeaderPlaceholder = inflater.inflate (r.layout.view_header_holder_medium ، null ، false) ؛ layoumanager.addview (HeaderPlaceholder ، 0) ؛

ومع ذلك ، لكي يعمل هذا ، يجب أن يكون لدى LayoutManager طريقة addview () تأخذ وسيطتين: العرض لإضافته وموقفه داخل Recyclerview. لذلك ، يفترض هذا النهج أن لديك جهاز تخطيط مخصص يدعم إضافة الرؤوس. ومع ذلك ، بدلاً من استخدام AddView () ، يمكنك استخدام AddFooterview () أو إنشاء محول مخصص يعالج تذييل العناصر العادية.

باستخدام محول مخصص

يمكن للمحول بعد ذلك إرجاع العدد الصحيح من العناصر ، بما في ذلك الرأس وتذييل ، وتضخيم وجهات نظر الرأس والتذييل في طريقة onCreateViewholder (). مثال على تطبيق:

LayoutInflater inflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
headerPlaceHolder = inflater.inflate(R.layout.view_header_holder_medium, null, false);
layouManager.addView(headerPlaceHolder, 0);
تحتاج ببساطة إلى تعديل المحول أو LayoutManager المخصص للتعامل مع الرؤوس والتذييلات الإضافية. على سبيل المثال:

// إنشاء spansizelookup GridlayoutManager.spansizelookup Spansizelookup = new GridlayoutManager.spansizelookup () { @تجاوز الجمهور int getPansize (الموضع int) { // إرجاع 1 للعناصر العادية ، وعدد الأعمدة للتذييل إذا (الموضع == data.size ()) { إرجاع gridlayoutmanager.getSpancount () ؛ } العودة 1 ؛ } } ؛ // اضبط Spansizelookup على GridlayoutManager GridlayoutManager.SetSpansizelookup (Spansizelookup) ؛

سيضمن هذا النهج أن تذييل يشغل العرض الكامل من RecyClerview.

أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3