Ich versuche eine sehr einfache Anwendung, die eine RecyclerView mit einem GridLayoutManager verwendet. Was ich erreichen möchte, ist, die Spaltenbreite der Kartenelemente beizubehalten und die Ränder zwischen ihnen zu ändern (ich muss meine Spaltenbreite beibehalten). Aber was passiert, ist die Breite der Spalte selbst ändert sich, wenn ich zwischen Hochformat und Querformat wechsle.Android - Wie wird die Spaltenbreite für ein RecyclerView-Objekt beim Wechseln der Ausrichtung beibehalten?
Wenn ich das richtig verstanden habe, muss ich die Breite des Bildschirms messen, dividiere es durch die Breite jeder Karte und setze die Spannenzählung des GridLayoutManagers auf den berechneten Wert. Aber ich vermisse etwas.
Auch habe ich versucht, die AutoFitRecyclerView (http://blog.sqisland.com/2014/12/recyclerview-autofit-grid.html) mit und es gibt eine Menge von Stellen RecyclerView GridLayoutManager: how to auto-detect span count?, Changing number of columns in RecyclerView gridlayout, die helfen, die Spanne Zahl automatisch erkennen, aber das ist nicht das, was ich erreichen will. Ich möchte die gleiche Spaltenbreite haben, während ich die Ränder zwischen den Spalten justiere.
Alle Zeiger oder eine Lösung würden am meisten geschätzt werden.
Hier ist die Raster-Element Layout:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="210dp"
android:layout_height="338dp"
android:layout_margin="12dp">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/thumbnail"
android:layout_width="match_parent"
android:layout_height="270dp"
android:background="#1F000000"/>
<TextView
android:id="@+id/title_text"
android:layout_width="164dp"
android:layout_height="wrap_content"
android:layout_below="@id/thumbnail"
android:layout_marginBottom="13dp"
android:layout_marginLeft="13dp"
android:layout_marginRight="32dp"
android:layout_marginTop="13dp"
android:ellipsize="end"
android:maxLines="2"
android:textColor="#393c3d"
android:textSize="14sp" />
</RelativeLayout>
</android.support.v7.widget.CardView>
das Layout veröffentlichen? – Shmuel
@Shmuel Ich habe gerade das Layout des GridItems hinzugefügt, ich möchte die Breite und Höhe des CardView unabhängig von der Ausrichtung beibehalten. Es gibt einen 12dp Rand, der nicht sollte nicht behoben werden sollte. – user1841702