RecyclerView dan item saya memiliki lebar match_parent tetapi hasilnya adalah:
<view
class="android.support.v7.widget.RecyclerView"
android:layout_width="match_parent"
dan item:
<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"
penuh:
<?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
sumber
sumber
Di dalam metode onCreateViewHolder (...) di mana Anda menggembungkan tampilan .. Anda harus mendefinisikan ViewGroup sebagai induknya. Ini akan Anda dapatkan dari parameter pertama metode onCreateViewHolder (...).
lihat baris di bawah ini pada parameter kedua saya melewati ViewGroup. Ini akan secara otomatis mencocokkan tampilan dengan induknya:
/// kode lengkapnya ada di bawah ini
sumber
Saya menggunakan
FrameLayout
denganMATCH_PARENT
untuk lebar dan melihat perilaku yang sama denganRecyclerView
+LinearLayoutManager
. Tidak satu pun dari perubahan di atas yang berfungsi untuk saya hingga saya melakukan hal berikut dionCreateViewHolder
callback:Jelas terlihat seperti bug dalam (saya menduga) implementasi RecyclerView.
sumber
coba ini ketika Anda mengatur tata letak params untuk item Anda di adaptor.
sumber
Saya telah melakukan perbaikan seperti ini. Dalam kasus saya masalah dengan file tata letak aktivitas karena saya menggunakan ConstraintLayout sebagai tata letak aktivitas root. Mungkin juga untuk Anda.
sumber
Dalam kasus saya, masalahnya adalah dalam
RecyclerView
deklarasi XML,layout_width
adalah 0dp yang berarti match_constraints, ketika saya mengubahnyamatch_parent
, item mulai mengisi semuaRecyclerView
lebar:sumber
Saya memecahkan ini dengan:
Ini mengganti
MATCH_PARENT
dengan lebar aktual dariRecyclerView
.sumber
Ini berhasil untuk saya.
ganti ini
dengan ini
sumber
Tidak dapat melihat kode lengkap Anda, tetapi dapat menebak, bahwa beberapa tampilan di dalam LinearLayout Anda adalah '
wrap_content
'. Anda perlu membuat satu atau beberapa dari mereka meluas ke lebar penuh dengan menggunakan 'android:layout_weight="1"
'pembaruan: Anda memiliki banyak cadangan
layout_weight
. Buat semuanya 'wrap_content
' dan hanya satu yang ditambahkanlayout_weight=1
- untuk CustomTextView terakhir. Dengan cara ini, ia akan menempati semua ruang kosong.sumber