约束布局约束尺寸比不适用于多个视图
Constraint layout constraint dimension ratio not working with multiple views
我对约束尺寸比有疑问。图像视图的宽度和高度未调整。我想根据比例使图像拇指视图正方形。我希望图像缩略图的宽度和高度等于布局中给出的三个文本视图的总高度。此外,当前代码未将图像加载到图像视图中。
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/constraintAList"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="5dp">
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/audioThumb"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:background="@drawable/ic_headset"
android:scaleType="centerCrop"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintBottom_toBottomOf="@id/audioDetail"
app:layout_constraintEnd_toStartOf="@id/audioName"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/audioName"
app:shapeAppearanceOverlay="@style/roundImageView" />
<TextView
android:id="@+id/audioName"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:ellipsize="end"
android:includeFontPadding="false"
android:maxLines="2"
android:lines="2"
android:padding="0dp"
android:text="audioName"
app:layout_constraintBottom_toTopOf="@+id/audioTime"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/audioThumb"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_chainStyle="packed" />
<TextView
android:id="@+id/audioTime"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:ellipsize="end"
android:gravity="top|start"
android:includeFontPadding="false"
android:padding="0dp"
android:singleLine="true"
android:text="audioDate"
android:textAlignment="textStart"
app:layout_constraintBottom_toTopOf="@id/audioDetail"
app:layout_constraintEnd_toEndOf="@id/audioName"
app:layout_constraintStart_toStartOf="@id/audioName"
app:layout_constraintTop_toBottomOf="@+id/audioName" />
<TextView
android:id="@+id/audioDetail"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:ellipsize="end"
android:gravity="top|start"
android:includeFontPadding="false"
android:padding="0dp"
android:singleLine="true"
android:text="audioDuration"
android:textAlignment="textStart"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@id/audioTime"
app:layout_constraintStart_toStartOf="@id/audioTime"
app:layout_constraintTop_toBottomOf="@+id/audioTime" />
</androidx.constraintlayout.widget.ConstraintLayout>
对于ImageView
- 设置
android:layout_height="0dp"
和
- 删除
app:layout_constraintEnd_toStartOf="@id/audioName"
我对约束尺寸比有疑问。图像视图的宽度和高度未调整。我想根据比例使图像拇指视图正方形。我希望图像缩略图的宽度和高度等于布局中给出的三个文本视图的总高度。此外,当前代码未将图像加载到图像视图中。
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/constraintAList"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="5dp">
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/audioThumb"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:background="@drawable/ic_headset"
android:scaleType="centerCrop"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintBottom_toBottomOf="@id/audioDetail"
app:layout_constraintEnd_toStartOf="@id/audioName"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/audioName"
app:shapeAppearanceOverlay="@style/roundImageView" />
<TextView
android:id="@+id/audioName"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:ellipsize="end"
android:includeFontPadding="false"
android:maxLines="2"
android:lines="2"
android:padding="0dp"
android:text="audioName"
app:layout_constraintBottom_toTopOf="@+id/audioTime"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/audioThumb"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_chainStyle="packed" />
<TextView
android:id="@+id/audioTime"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:ellipsize="end"
android:gravity="top|start"
android:includeFontPadding="false"
android:padding="0dp"
android:singleLine="true"
android:text="audioDate"
android:textAlignment="textStart"
app:layout_constraintBottom_toTopOf="@id/audioDetail"
app:layout_constraintEnd_toEndOf="@id/audioName"
app:layout_constraintStart_toStartOf="@id/audioName"
app:layout_constraintTop_toBottomOf="@+id/audioName" />
<TextView
android:id="@+id/audioDetail"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:ellipsize="end"
android:gravity="top|start"
android:includeFontPadding="false"
android:padding="0dp"
android:singleLine="true"
android:text="audioDuration"
android:textAlignment="textStart"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@id/audioTime"
app:layout_constraintStart_toStartOf="@id/audioTime"
app:layout_constraintTop_toBottomOf="@+id/audioTime" />
</androidx.constraintlayout.widget.ConstraintLayout>
对于ImageView
- 设置
android:layout_height="0dp"
和 - 删除
app:layout_constraintEnd_toStartOf="@id/audioName"