Mon RecyclerView et mon article ont une largeur match_parent mais le résultat est:
<view
class="android.support.v7.widget.RecyclerView"
android:layout_width="match_parent"
et articles:
<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"
plein:
<?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
la source
la source
À l'intérieur de la méthode onCreateViewHolder (...) de l'adaptateur où vous gonflez la vue .. vous devez définir le ViewGroup comme parent.Ce que vous obtiendrez à partir du 1er paramètre de la méthode onCreateViewHolder (...).
voir la ligne ci-dessous dans le deuxième paramètre je passe le ViewGroup. Cela fera automatiquement correspondre la vue à son parent:
/// le code complet est ci-dessous
la source
J'utilisais un
FrameLayout
avecMATCH_PARENT
pour la largeur et voyais le même comportement avec unRecyclerView
+LinearLayoutManager
. Aucune des modifications ci-dessus n'a fonctionné pour moi jusqu'à ce que je fasse ce qui suit dans leonCreateViewHolder
rappel:Ressemble clairement à un bogue dans (je suppose) l'implémentation de RecyclerView.
la source
essayez ceci lorsque vous définissez les paramètres de mise en page de votre élément dans l'adaptateur.
la source
J'avais fait réparer comme ça. Dans mon cas, problème avec le fichier de mise en page d'activité car j'utilise ConstraintLayout comme mise en page d'activité racine.Peut-être aussi pour vous.
la source
Dans mon cas, le problème était dans la
RecyclerView
déclaration XML, lelayout_width
was 0dp ce qui signifie match_constraints, quand je l'ai changé enmatch_parent
, les éléments ont commencé à remplir toute laRecyclerView
largeur:la source
J'ai résolu cela avec:
Il remplace le
MATCH_PARENT
par la largeur réelle duRecyclerView
.la source
Cela a fonctionné pour moi.
remplacer ceci
par ça
la source
Vous ne pouvez pas voir votre code complet, mais je peux deviner que certaines des vues à l'intérieur de votre LinearLayout sont '
wrap_content
'. Vous devez faire en sorte que l'un ou plusieurs d'entre eux s'étendent sur toute la largeur en utilisant 'android:layout_weight="1"
'mise à jour: vous avez beaucoup de redondants
layout_weight
. Faites-les tous 'wrap_content
' et pour un seul d'entre eux ajoutezlayout_weight=1
- pour le dernier CustomTextView. De cette façon, il occupera tout l'espace vide.la source