J'ai une disposition d'article dans laquelle j'affiche une image, un nom de produit et une image de produit. Je dois afficher l'image en ration 1: 1,5 en utilisant la disposition des contraintes. Mais quand je charge une petite image, les textes ci-dessous ne s'affichent pas.
Ci-dessous mon code d'article XML: -
<?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>
- Sortie avec image longue: - https://i.imgur.com/QVnljX6.png
- Sortie avec petite image: - https://i.imgur.com/0ZwkVwE.png
Et si je remplace match_parent par wrap_content, l'application se bloque avec l'erreur ci-dessous: -
java.lang.IllegalStateException: les pages doivent remplir tout le ViewPager2 (utiliser match_parent)
android
android-viewpager2
Mahesh Babariya
la source
la source
Réponses:
J'ai découvert que le problème est de gonfler le support de vue.
J'ai eu le même problème et l'ai résolu en changeant
à
la source
Tout en luttant contre ce problème, j'ai compris quel était le problème. Mon cas d'utilisation était que j'utilisais androidx.viewpager2.widget.ViewPager2 et appelais des vues normales dans RecyclerView.
Si vous remarquez soigneusement l'erreur, vous verrez quelque chose comme ceci:
La deuxième ligne est la clé du problème principal. Si vous ouvrez ViewPager2.java, vous verrez
Android ne prend pas le match_parent attribué en xml pour joindre des vues. De futures améliorations pourraient être apportées dans la prochaine version de ViewPager2.
Quoi qu'il en soit, pour l'instant, pour résoudre le problème, définissez les paramètres de mise en page comme MATCH_PARENT explicité.
Cette vue est la vue parent contenant les enfants View Pager.
Dans votre cas, ce serait androidx.constraintlayout.widget.ConstraintLayout.
la source
Pour moi, le problème était que les pages (c'est-à-dire la disposition parent / racine de l'adaptateur) dans ViewPager2 n'étaient pas match_parent, donc l'erreur était
java.lang.IllegalStateException: Pages must fill the whole ViewPager2 (use match_parent)
la source
j'ai fait face au même problème maintenant, la largeur et la hauteur de votre élément d'adaptateur doivent être match_parent
la source
J'ai eu le même problème. J'ai utilisé ViewPager2 pour afficher le curseur. Mais son élément XML n'était pas MATCH_PARENT. Après ce changement, le problème a été résolu.
la source
L'élément viewpager2 doit avoir une largeur et une hauteur correspondant à parent. mais SI vous utilisez la liaison de vues, vous devez gonfler la mise en page telle que les fragments:
la source
J'ai également rencontré le même problème, et la solution consiste à définir la hauteur comme match_parent de la vue de votre article, c'est-à-dire que la disposition utilisée dans la classe d'adaptateur doit avoir la hauteur MATCH_PARENT
la source