Meu RecyclerView e item têm largura match_parent, mas o resultado é:
<view
class="android.support.v7.widget.RecyclerView"
android:layout_width="match_parent"
e itens:
<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"
cheio:
<?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
fonte
fonte
Dentro do método onCreateViewHolder (...) do adaptador no qual você está inflando a exibição ... você precisa definir o ViewGroup como o pai. Você obterá o primeiro parâmetro do método onCreateViewHolder (...).
veja a linha abaixo no segundo parâmetro que eu estou passando o ViewGroup. Isso corresponderá automaticamente a visualização ao seu pai:
/// o código completo está abaixo
fonte
Eu estava usando um
FrameLayout
comMATCH_PARENT
para largura e estava vendo o mesmo comportamento com umRecyclerView
+LinearLayoutManager
. Nenhuma das alterações acima funcionou para mim até que eu fiz o seguinte noonCreateViewHolder
retorno de chamada:Parece claramente um bug na implementação do RecyclerView.
fonte
tente isso ao definir parâmetros de layout para o item no adaptador.
fonte
Eu tinha corrigido assim. No meu caso, problema com o arquivo de layout de atividade, porque eu estou usando ConstraintLayout como layout de atividade raiz. Pode ser o caso também.
fonte
No meu caso, o problema estava na
RecyclerView
declaração XML,layout_width
era 0dp, o que significa match_constraints, quando eu mudei paramatch_parent
, os itens começaram a preencher toda aRecyclerView
largura:fonte
Eu resolvi isso com:
Ele está substituindo o
MATCH_PARENT
pela largura real doRecyclerView
.fonte
Isso funcionou para mim.
substitua isso
por este
fonte
Não é possível ver seu código completo, mas pode-se adivinhar que algumas das visualizações dentro do LinearLayout são '
wrap_content
'. Você precisa fazer com que um ou alguns deles se expandam para toda a largura usando 'android:layout_weight="1"
'atualização: você tem muitos redundantes
layout_weight
. Crie todos eles 'wrap_content
' e, para apenas um deles, adicionelayout_weight=1
- para o último CustomTextView. Dessa forma, ele ocupará todo o espaço em branco.fonte