5

ich mehrere RecyclerView Elemente in jedem CardView Element zu erstellen, ich versucht, wie diese App tut:Mehrere RecyclerView Einzelteile in einem CardView

enter image description here

Ich hatte eine cardview_item.xml erstellt, die den Datensatz-Objekt enthält (die in diesem Beispiel übereinstimmen)

und eine cardview_title.xml, die den Titel der Karte enthält (die Liga in diesem Beispiel).

cardview_title.xml:

enter image description here

Wie kann ich mit RecyclerView implementieren diese:

<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> 

Die RecyclerView.Adapter, die ich in separaten cardview zeigt jeden Datensatz Element erweitert , CardView und ViewHolder Designmuster?

Jede Hilfe wird geschätzt.

Danke

+0

Ich möchte das gleiche tun. Aber immer noch nicht herausfinden. Hast du eine Lösung? Bitte teilen Sie mit mir. – riseres

+2

Ich habe diesen Link gefunden. https://github.com/gabrielemariotti/cardslib/blob/master/doc/CARDWITHLIST.md#using-a-custom-inner-layout – riseres

Antwort

1

Ich habe vor kurzem ein ähnliches Muster implementiert.

Ein RecyclerView, der unterschiedliche Arten von Layouts oder eine dynamische Anzahl von Elementen für jedes Element aufweist, wird Leistungsprobleme haben, da wir die Ansichten nicht mit dem ViewHolder-Muster wiederverwenden können.

Option 1: Verwenden Sie ein Recycler-Layout mit Titel und einem dynamischen Layout, das die angegebenen Matchdetails aufbläht. Das dynamische Layout kann jedoch nicht wiederverwendet werden, sodass Sie beim Scrollen sichtbare Verzögerungen erhalten.

Option 2: Wenn Sie die maximale Anzahl der Spiele für eine Liga festlegen können, legen Sie eine Karte mit der maximalen Anzahl an Spielen fest und blenden Sie die Spiele entsprechend den verfügbaren Spieldaten aus. Dies hat mir geholfen, die Leistung zu verbessern, wenn Sie es mit dem einzelnen dynamischen Layout vergleichen.

Option 3: Kombinieren Sie Option 1 und 2. Verwenden Sie statische Vergleichselemente zusammen mit einem dynamischen Element. Nutzen Sie das dynamische Layout nur bei Bedarf. Dies minimiert die Häufigkeit, mit der das dynamische Layout aufgebläht wird. Damit können Sie dem RecyclerView bei der Wiederverwendung der Ansichten helfen.

Ich hoffe, es hilft Ihnen.

+0

können Sie bitte das Layout-Design veröffentlichen – Sushrita

Verwandte Themen