Leanback यूज़र इंटरफ़ेस (यूआई) टूलकिट लाइब्रेरी

Compose की सुविधा की मदद से बेहतर बनाएं
Android TV OS के लिए Jetpack Compose का इस्तेमाल करके कम से कम कोड के साथ खूबसूरत यूज़र इंटरफ़ेस (यूआई) बनाएं.

Leanback UI टूलकिट Android TV OS के लिए डेवलप किए गए ऐप्लिकेशन. इन लाइब्रेरी में ये शामिल हैं:

  • Leanback लाइब्रेरी: इसमें ऐसे यूज़र इंटरफ़ेस (यूआई) टेंप्लेट दिए गए हैं जो इससे Android TV ऐप्लिकेशन आसानी से बनाए जा सकते हैं.
  • लीनबैक प्राथमिकताएं लाइब्रेरी: ऐसी प्राथमिकताएं और सेटिंग स्क्रीन उपलब्ध कराती है जो से मेल खाती हो. हालांकि, इसकी थीम आपके ऐप्लिकेशन के हिसाब से हो सकती है.
  • Leanback पेजिंग लाइब्रेरी: ObjectAdapters के लिए AndroidX पेजिंग मॉडल, जिसे आम तौर पर Leanback टेम्प्लेट.
  • Leanback टैब लाइब्रेरी: टैब किए गए टैब के साथ काम करता है Android TV पर नेविगेट करें.

Leanback पेजिंग लाइब्रेरी

Leanback यूज़र इंटरफ़ेस (यूआई) टूलकिट के अंदर पेज करना, AndroidX की तरह ही काम करता है लाइब्रेरी पेज 3, जो यह किसी फ़ाइल में पेजिंग जोड़ना आसान बनाता है RecyclerView.Adapter. Leanback पेजिंग लाइब्रेरी के साथ, दिख रहा अडैप्टर आमतौर पर ObjectAdapter इसलिए, लाइब्रेरी ObjectAdapter में पेजिंग की सुविधा जोड़ देती है.

अपने ऐप्लिकेशन में पेजिंग अडैप्टर जोड़ने के लिए, पहले अपने प्रोजेक्ट में लाइब्रेरी डिपेंडेंसी जोड़ें:

implementation "androidx.leanback:leanback-paging:$version"

इसके बाद, इसका इस्तेमाल करके पेज 3 से जुड़ा दस्तावेज़ के बजाय androidx.leanback.paging.PagingDataAdapter androidx.paging.PagingDataAdapter. बस अंतर यह है कि अब आपके पास कम से कम Presenter पास करने के लिए या PresenterSelector. यह उन सभी जगहों पर काम करता है जहां आम तौर पर ObjectAdapter का इस्तेमाल किया जाता है, जैसे कि ListRow:

Kotlin

val adapter: PagingDataAdapter<MyItem> = PagingDataAdapter(myPresenter,
   object : DiffUtil.ItemCallback<MyItem>() {
       override fun areItemsTheSame(
           oldItem: MyItem,
           newItem: MyItem
       ): Boolean {
           return oldItem.id === newItem.id
       }

       override fun areContentsTheSame(
           oldItem: MyItem,
           newItem: MyItem
       ): Boolean {
           return oldItem == newItem
       }
   })

val header = HeaderItem(headerTitle)
val row = ListRow(header, adapter)

Java

PagingDataAdapter<MyItem> adapter = new PagingDataAdapter(myPresenter, new DiffUtil.ItemCallback<MyItem>() {
    @Override
    public boolean areItemsTheSame(@NonNull MyItem oldItem, @NonNull MyItem newItem) {
        return oldItem.getId().equals(newItem.getId());
    }

    @Override
    public boolean areContentsTheSame(@NonNull MyItem oldItem, @NonNull MyItem newItem) {
        return oldItem.equals(newItem);
    }
});

HeaderItem header = new HeaderItem(headerTitle);
Row row = new ListRow(header, adapter);

Leanback टैब लाइब्रेरी

Leanback यूज़र इंटरफ़ेस (यूआई) टूलकिट टेंप्लेट, आपको स्क्रीन ब्राउज़ करें. टैब की पंक्ति को हॉरिज़ॉन्टल तौर पर जोड़ने के लिए ऐप्लिकेशन के शीर्ष पर, इसके बजाय आप इसके बजाय Leanback टैब का उपयोग कर सकते हैं.

अपने प्रोजेक्ट में लाइब्रेरी डिपेंडेंसी जोड़ें:

implementation "androidx.leanback:leanback-tab:$version"

इसके बाद, LeanbackTabLayout और LeanbackViewPager का इस्तेमाल करके टैब लागू करें. इसके लिए मौजूदा का पालन किया जा रहा है ViewPager गाइड. ध्यान दें कि LeanbackViewPager, ViewPager पर आधारित है, न कि ViewPager2 पर.

यह एक उदाहरण है:

Kotlin

val leanbackTabLayout = findViewById<LeanbackTabLayout>(R.id.tab_layout)
val leanbackViewPager = findViewById<LeanbackViewPager>(R.id.view_pager)

leanbackViewPager.setAdapter(adapter)
leanbackTabLayout.setupWithViewPager(leanbackViewPager)

Java

LeanbackTabLayout leanbackTabLayout = findViewById(R.id.tab_layout);
LeanbackViewPager leanbackViewPager = findViewById(R.id.view_pager);

leanbackViewPager.setAdapter(adapter);
leanbackTabLayout.setupWithViewPager(leanbackViewPager);

सीमाएं

Leanback Tabs लाइब्रेरी की थीम और फ़ोकस के लिए, कुछ पाबंदियां लगाई गई हैं गतिविधि को हैंडल किया जाता है.

ऐसी थीम जिनका इस्तेमाल किया जा सकता है

सिर्फ़ Theme.AppCompat से ली गई थीम काम करती हैं. TabLayout अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है इसमें एक थीम लागू करने का कंस्ट्रेंट शामिल है, जो किसी भी नॉनडिसेंडेंट थीम को रोकता है में से Theme.AppCompat का इस्तेमाल किया जा रहा है. ब्रिज थीम का इस्तेमाल Leanback यूज़र इंटरफ़ेस (यूआई) टूलकिट.

टैब से ऊपर की ओर जाने वाली गतिविधि पर फ़ोकस करें

जब लेआउट की ऊंचाई, स्क्रीन की ऊंचाई से ज़्यादा हो और डी-पैड दबाएं अप बटन, कंट्रोल फ़्रैगमेंट के अंदर रहने के बजाय, टैब पर वापस जाता है और उसके ऊपर मौजूद किसी आइटम पर जाएं (पहली इमेज देखें). इस समस्या को हल करने के लिए, कॉन्टेंट फ़्रैगमेंट के अंदर फ़ोकस सर्च को ओवरराइड करेगा; उदाहरण के लिए, RowsSupportFragment. BrowseSupportFragment इसका इस्तेमाल टैब के अंदर नहीं किया जा सकता क्योंकि इसमें एक ओवरराइड किया हुआ फ़ोकस खोज तरीका है जो फ़ोकस को वापस टैब पर जाने से रोकता है.

पहली इमेज. डी-पैड पर ऊपर की ओर तीर का निशान वाला बटन, फ़ोकस को पिछले आइटम के बजाय टैब पर ले जाता है.