Meine RecyclerView und mein Element haben die Breite match_parent, aber das Ergebnis ist:
<view
class="android.support.v7.widget.RecyclerView"
android:layout_width="match_parent"
und Gegenstände:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:fab="http://schemas.android.com/apk/res-auto"
android:id="@+id/ll_itm"
android:orientation="horizontal"
android:layout_width="match_parent"
voll:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:fab="http://schemas.android.com/apk/res-auto"
android:id="@+id/ll_itm"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weightSum="100"
android:gravity="right"
>
<Button
android:layout_width="0dp"
android:layout_weight="15"
android:layout_height="fill_parent"
android:text="ملاحظات"
android:id="@+id/button" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="20"
android:gravity="center"
>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<com.getbase.floatingactionbutton.FloatingActionButton
android:layout_width="fill_parent"
android:layout_height="fill_parent"
fab:fab_plusIconColor="#ff56ff83"
fab:fab_colorNormal="@color/d_red"
fab:fab_colorPressed="#ff5c86ff"
fab:fab_size="mini"
fab:fab_icon="@drawable/ic_remove_white"
android:id="@+id/fab_rmv" />
<esfandune.ir.elmikarbordiardakan.other.CustomTxtView
android:layout_weight="25"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="0"
android:gravity="right|center_vertical"
android:id="@+id/txt_takhir_itm" />
<com.getbase.floatingactionbutton.FloatingActionButton
android:layout_width="fill_parent"
android:layout_height="fill_parent"
fab:fab_plusIconColor="@color/colorprimarylight"
fab:fab_colorNormal="@color/colorprimarydark"
fab:fab_colorPressed="@color/colorprimary"
fab:fab_size="mini"
fab:fab_icon="@drawable/ic_add_white"
android:id="@+id/fab_add" />
</LinearLayout>
</LinearLayout>
<Spinner
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="10"
android:id="@+id/sp_nomre_itm"
android:entries="@array/degrees"/>
<LinearLayout
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="10"
android:gravity="center"
>
<!--LinearLayout baraye ine ke nameshod fab ro weight behosh dad-->
<com.getbase.floatingactionbutton.FloatingActionButton
android:layout_width="fill_parent"
android:layout_height="fill_parent"
fab:fab_plusIconColor="#ff56ff83"
fab:fab_colorNormal="@color/d_green"
fab:fab_colorPressed="@color/d_orange"
fab:fab_size="normal"
fab:fab_icon="@drawable/ic_done_white"
android:id="@+id/fab_hazr" />
</LinearLayout>
<esfandune.ir.elmikarbordiardakan.other.CustomTxtView
android:layout_weight="5"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="100"
android:gravity="right|center_vertical"
android:id="@+id/txt_ghybtNumber_itm" />
<esfandune.ir.elmikarbordiardakan.other.CustomTxtView
android:layout_weight="30"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="عباسعلی ملاحسینی اردکانی"
android:gravity="right|center_vertical"
android:id="@+id/txt_title_itm"
android:layout_marginRight="10dp"
/>
<view
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="10"
class="de.hdodenhof.circleimageview.CircleImageView"
android:id="@+id/view"
android:src="@drawable/mmrdf"
/>
</LinearLayout>
android
android-recyclerview
abbasalim
quelle
quelle
Innerhalb der onCreateViewHolder (...) -Methode des Adapters, in dem Sie die Ansicht aufblasen, müssen Sie die ViewGroup als übergeordnetes Element definieren. Dies erhalten Sie aus dem ersten Parameter der onCreateViewHolder (...) -Methode.
siehe die folgende Zeile im zweiten Parameter Ich übergebe die ViewGroup. Dadurch wird die Ansicht automatisch dem übergeordneten Element zugeordnet:
/// Der vollständige Code ist unten
quelle
Ich habe ein
FrameLayout
withMATCH_PARENT
für width verwendet und habe das gleiche Verhalten mit einemRecyclerView
+ gesehenLinearLayoutManager
. Keine der oben genannten Änderungen hat bei mir funktioniert, bis ich imonCreateViewHolder
Rückruf Folgendes getan habe :Sieht eindeutig wie ein Fehler in der RecyclerView-Implementierung aus (ich vermute).
quelle
Versuchen Sie dies, wenn Sie Layoutparameter für Ihr Element im Adapter festlegen.
quelle
Ich hatte so etwas repariert. In meinem Fall Problem mit der Aktivitätslayoutdatei, da ich ConstraintLayout als Stammaktivitätslayout verwende. Könnte auch für Sie der Fall sein.
quelle
In meinem Fall lag das Problem in der
RecyclerView
XML-Deklarationlayout_width
0dp, was bedeutet, dass match_constraints beim Ändern inmatch_parent
Elemente die gesamteRecyclerView
Breite ausfüllten :quelle
Ich habe das gelöst mit:
Es ersetzt das
MATCH_PARENT
durch die tatsächliche Breite desRecyclerView
.quelle
Das hat bei mir funktioniert.
Ersetzen Sie diese
dadurch
quelle
Ich kann Ihren vollständigen Code nicht sehen, kann aber vermuten, dass einige der Ansichten in Ihrem LinearLayout '
wrap_content
' sind. Sie müssen einen oder einige von ihnen mithilfe von 'android:layout_weight="1"
' auf die volle Breite erweitern.Update: Sie haben viele redundante
layout_weight
. Machen Sie sie alle 'wrap_content
' und fügen Sie für nur einen von ihnen hinzulayout_weight=1
- für die letzte CustomTextView. Auf diese Weise wird der gesamte Leerraum belegt.quelle