Мой RecyclerView и элемент имеют ширину match_parent, но результат:
<view
class="android.support.v7.widget.RecyclerView"
android:layout_width="match_parent"
и предметы:
<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"
полный:
<?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
источник
источник
Внутри метода onCreateViewHolder (...) адаптера, в котором вы раздуваете представление ... вы должны определить ViewGroup как родительский. Это вы получите из 1-го параметра метода onCreateViewHolder (...).
см. строку ниже во втором параметре, который я передаю ViewGroup. Это автоматически сопоставит представление с его родителем:
/// полный код ниже
источник
Я использовал
FrameLayout
сMATCH_PARENT
для ширины и наблюдал то же поведение сRecyclerView
+LinearLayoutManager
. Ни одно из перечисленных выше изменений не помогло мне, пока я не сделал следующее вonCreateViewHolder
обратном вызове:Очевидно, это похоже на ошибку (я предполагаю) в реализации RecyclerView.
источник
попробуйте это, когда вы установите параметры макета для своего элемента в адаптере.
источник
Я сделал вот такое исправление. В моем случае проблема с файлом макета активности, потому что я использую ConstraintLayout в качестве корневого макета активности. Может быть, и для вас.
источник
В моем случае проблема была в
RecyclerView
объявлении XML,layout_width
было 0dp, что означает match_constraints, когда я изменил его наmatch_parent
, элементы начали заполнять всюRecyclerView
ширину:источник
Я решил это с:
Он заменяет
MATCH_PARENT
фактическую ширинуRecyclerView
.источник
Это сработало для меня.
замени это
этим
источник
Не могу видеть ваш полный код, но могу догадаться, что некоторые из представлений внутри вашего LinearLayout - это '
wrap_content
'. Вам нужно сделать так, чтобы один или несколько из них расширились на всю ширину, используя 'android:layout_weight="1"
'update: у вас много лишних
layout_weight
. Сделать их все 'wrap_content
' и только для одного из них добавитьlayout_weight=1
- для последнего CustomTextView. Таким образом, он займет все пустое место.источник