2017-05-03 1 views
0

Ich möchte ein RecyclerView mit zwei sichtbaren CardViews erstellen, die horizontal scrollen können. Ähnlich wie das Bild unten. enter image description hereWie erreicht man diese RecyclerView mit horizontalem Scrollen?

Wenn Sie den LayoutManager auf diesen Code einstellen, wird das gewünschte Format erstellt, aber es wird vertikal gescrollt.

recyclerView.SetLayoutManager(new GridLayoutManager(Context, 2, GridLayoutManager.Vertical, false)); 

enter image description here

das Layouts dieses Code Einstellung erzeugt ein falsches Format, aber es ist horizontal zu scrollen.

recyclerView.SetLayoutManager(new GridLayoutManager(Context, 2, GridLayoutManager.Horizontal, false)); 

enter image description here

Meine Frage ist, wie kann ich ein Format von zwei CardViews erstellen, die nebeneinander und können horizontal scrollen?

Hier ist die CardView XML nur für den Fall es gebraucht wird:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/cardView" 
    android:layout_marginLeft="10dp" 
    android:layout_marginTop="10dp" 
    android:layout_marginRight="10dp" 
    android:layout_marginBottom="10dp"> 
    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="#FF0000"> 
    </RelativeLayout> 
</android.support.v7.widget.CardView> 
+0

Haben Sie versucht, einen LinearLayoutManager anstelle eines GridLayoutManagers zu verwenden? –

Antwort

1

Versuchen Sie, eine LinearLayoutManager mit horizontaler Ausrichtung mit:

LinearLayoutManager layoutManager = new LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false); 

Wenn Sie 2 Karten zur gleichen Zeit zeigen wollen, Stellen Sie ihre Breite auf die Hälfte der Bildschirmgröße ein.

+0

Vielen Dank für Ihre Antwort. Ich habe darüber nachgedacht, einen LinearLayoutManager zu verwenden, aber das Problem dabei ist, wie Sie die Weiten der beiden CardViews innerhalb desselben anpassen, so dass sie im Elternteil identisch sind. Was würde auch passieren, wenn ich jetzt drei CardViews anzeigen möchte? Es wäre nicht so einfach, den GridLayoutManager zu verwenden und die Anzahl der Spalten zu ändern. – John

+0

Sie könnten 'cardWidth = screenSize/COLUMNS_NUMBER' und nur die letzte Konstante ändern, wenn Sie weitere Spalten hinzufügen möchten. 'GridLayoutManager' funktioniert, wenn Sie ein Raster mit mehr als 1 Zeile und Spalte erstellen möchten, nicht in Ihrem Fall. –

+0

Oder Sie können versuchen, "Android: Gewicht" in Ihren CardViews, aber ich weiß nicht, ob es funktioniert –

Verwandte Themen