Saya memiliki tata letak item tempat saya menampilkan gambar, nama produk, dan gambar produk. Saya harus menampilkan gambar dalam rasio 1: 1.5 menggunakan tata letak kendala. Tetapi ketika saya memuat gambar kecil, teks di bawah ini tidak ditampilkan.
Di bawah ini adalah kode item XML saya: -
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/coordinatorLayoutCartRoot"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.jackandphantom.circularimageview.RoundedImage
android:id="@+id/imageViewSlider"
android:layout_width="match_parent"
android:layout_height="0dp"
android:scaleType="centerCrop"
app:layout_constraintBottom_toTopOf="@id/tvTitle"
app:layout_constraintDimensionRatio="WH,1:1.4"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:rounded_radius="0"
tools:src="@tools:sample/avatars" />
<TextView
android:id="@+id/tvTitle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="center"
android:padding="4dp"
android:text="Fitted crew neck sweater"
android:textColor="@color/colorBlack"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/imageViewSlider" />
<TextView
android:id="@+id/tvPrice"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="center"
android:padding="4dp"
android:text="$34.00"
android:textColor="@color/colorBlack"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvTitle" />
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>
- Output dengan gambar panjang: - https://i.imgur.com/QVnljX6.png
- Output dengan gambar kecil: - https://i.imgur.com/0ZwkVwE.png
Dan jika saya mengganti match_parent dengan wrap_content, aplikasi macet dengan kesalahan di bawah ini: -
java.lang.IllegalStateException: Halaman harus mengisi seluruh ViewPager2 (gunakan match_parent)
android
android-viewpager2
Mahesh Babariya
sumber
sumber
Jawaban:
Saya telah menemukan bahwa masalahnya adalah menggembungkan view holder.
Saya memiliki masalah yang sama dan menyelesaikannya dengan mengubah
untuk
sumber
Sambil berjuang dengan masalah ini, saya mencari tahu apa masalahnya. Kasus penggunaan saya adalah saya menggunakan androidx.viewpager2.widget.ViewPager2, dan memanggil Tampilan normal di RecyclerView.
Jika Anda memperhatikan kesalahan dengan cermat, Anda akan melihat sesuatu seperti ini:
Baris kedua adalah kunci untuk masalah utama. Jika Anda membuka ViewPager2.java Anda akan melihat
Android tidak menggunakan match_parent yang ditugaskan dalam xml untuk melampirkan tampilan. Mungkin perbaikan di masa depan akan dilakukan dalam rilis berikutnya ViewPager2.
Bagaimanapun, untuk sekarang memperbaikinya, setel tata letak params sebagai MATCH_PARENT kejelasan.
Tampilan ini adalah tampilan induk yang memegang anak-anak Lihat Pager.
Jika Anda akan androidx.constraintlayout.widget.ConstraintLayout.
sumber
Bagi saya, masalahnya adalah halaman (yaitu tata letak induk / root adaptor) di ViewPager2 bukan match_parent maka kesalahannya adalah
java.lang.IllegalStateException: Pages must fill the whole ViewPager2 (use match_parent)
sumber
saya menghadapi masalah yang sama sekarang, lebar dan tinggi item adaptor Anda harus match_parent
sumber
Saya memiliki masalah yang sama. Saya menggunakan ViewPager2 untuk menampilkan slider. Tetapi item XML-nya bukan MATCH_PARENT. Setelah perubahan itu masalah terselesaikan.
sumber
item viewpager2 harus memiliki lebar dan tinggi match_parent. tetapi JIKA Anda menggunakan View Binding, Anda harus mengembang tata letak seperti fragmen:
sumber
Saya juga menghadapi masalah yang sama, dan solusinya adalah mengatur ketinggian sebagai match_parent dari tampilan item Anda yaitu tata letak yang digunakan dalam kelas adaptor harus memiliki tinggi seperti MATCH_PARENT
sumber