5

Próbuję utworzyć kilka pozycji RecyclerView w każdej pozycji CardView jak ta aplikacja robi:Wiele przedmiotów RecyclerView w jednym CardView

enter image description here

I stworzył cardview_item.xml zawierający element zestawu danych (The mecz w tym przykładzie)

oraz cardview_title.xml, który zawiera tytuł karty (ligę w tym przykładzie).

cardview_title.xml:

<android.support.v7.widget.CardView 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:card_view="http://schemas.android.com/apk/res-auto" 
android:layout_width="fill_parent" 
android:layout_height="88dp" 
card_view:cardCornerRadius="1dp" 
android:layout_margin="4dp"> 

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" > 

    <TextView 
     android:id="@+id/amount_title" 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:layout_marginEnd="5dp" 
     android:layout_marginTop="5dp" 
     android:gravity="center" 
     android:layout_alignParentEnd="true" 
     android:padding="5dp" 
     android:text="@string/amount" 
     android:textAllCaps="true" 
     android:textSize="20sp" 
     android:textColor="@android:color/black"/> 

    . 
    . 
    . 

    <TextView 
     android:id="@+id/week_title" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBottom="@id/amount_title" 
     android:layout_alignTop="@id/amount_title" 
     android:layout_alignParentStart="true" 
     android:layout_marginStart="5dp" 
     android:gravity="center" 
     android:padding="5dp" 
     android:textAllCaps="true" 
     android:text="@string/week" 
     android:textColor="@android:color/black" 
     android:textSize="20sp" /> 

    <View 
     android:id="@+id/lineSeparator" 
     android:layout_width="fill_parent" 
     android:layout_height="1dp" 
     android:layout_below="@id/week_title" 
     android:background="@android:color/darker_gray"/> 

    <include 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     layout="@layout/cardview_item" 
     android:layout_below="@+id/week_title" 
     android:layout_centerHorizontal="true" /> 

</RelativeLayout> 

RecyclerView.Adapter że przedłużony pokazuje każdy element zestawu danych w osobnym cardview:

enter image description here

Jak mogę wdrożyć to z RecyclerView , Wzór CardView i ViewHolder?

Każda pomoc zostanie doceniona.

Dzięki

+0

Chcę zrobić to samo. Ale nadal nie może zrozumieć. Czy masz rozwiązanie? Proszę, podziel się ze mną. – riseres

+2

Znalazłem ten link. https://github.com/gabrielemariotti/cardslib/blob/master/doc/CARDWITHLIST.md#using-a-custom-inner-layout – riseres

Odpowiedz

1

Niedawno wprowadziła podobny wzór.

Widok RecyclerView, który ma inny typ układów lub dynamiczną liczbę elementów dla każdego elementu, będzie miał problemy z wydajnością, ponieważ nie możemy ponownie użyć widoków z wzorcem ViewHolder.

Opcja 1: Użyj układu elementów recyklingu z tytułem i układem dynamicznym, który zawyży podane dane meczowe. Dynamiczny układ nie może być jednak ponownie użyty, więc podczas przewijania będziesz mieć widoczne opóźnienia.

Opcja 2: Jeśli możesz zdecydować o maksymalnej liczbie meczów dla ligi, zdefiniuj kartę z maksymalną liczbą meczów i ukryj mecze zgodnie z dostępnymi danymi meczu. Pomogło mi to poprawić wydajność, porównując je z pojedynczym układem dynamicznym.

Opcja 3: Łącz opcje 1 i 2. Użyj statycznych elementów dopasowania wraz z dynamicznym elementem. Wykorzystaj dynamiczny układ tylko wtedy, gdy jest potrzebny. Pozwoli to zminimalizować liczbę nadpisań układu dynamicznego. Aby pomóc RecyclerView w ponownym wykorzystaniu widoków.

Mam nadzieję, że to pomoże.

+0

Czy możesz opublikować projekt layoutu – Sushrita

Powiązane problemy