+-

我在垂直链中有两个视图(viewA,viewB). viewA的宽高比应始终为1:1,而viewB的高度是动态的(可能为400dp,可能为700dp)
预期成绩:
当viewB的高度太大而无法容纳屏幕中的两个视图时,应减小viewA的宽度(保持宽高比).
实际结果:
如果viewB的高度太大,则viewA的宽度始终与父项匹配,并且视图会离开屏幕边界.
注意:需要使用ConstantsLayout且没有嵌套的视图组.
<View
android:id="@+id/viewA"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@+id/viewB"
app:layout_constraintDimensionRatio="h,1:1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_chainStyle="spread"/>
<View
android:id="@+id/viewB"
android:layout_width="match_parent"
android:layout_height="700dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/viewA"/>
最佳答案
将顶视图的尺寸比例更改为以下:
app:layout_constraintDimensionRatio="w,1:1"
现在,当底部视图的高度发生变化时,顶部将根据需要进行跟踪,同时保持1:1的比例.我添加了颜色以更好地查看布局中的视图.
底视图为700dp

底视图为500dp

底视图为200dp

点击查看更多相关文章
转载注明原文:android-用ConstraintLayout中具有纵横比的视图填充剩余空间 - 乐贴网