在ConstraintLayout中,我有两个垂直排列在彼此顶部的RecEconerView view_a
和view_b
.
宽度:简单,Match_Parent.我的问题是身高.
最下面的view_b
个应该包装它的内容,并扩大到三分之一的空间.
前view_a
名应该会填补剩余的空间.
例如,如果view_b只包含1项,我希望它只填充高度的1/10,view_a应该填充其余的9/10.但当view_b包含1000项时,它应该填充1/3(并滚动以显示隐藏的项),将2/3留给view_a.
我try 了以下几种方法.然而,这只实现了固定的2:1的视图比例.
如果view_b
小于1/3,它仍然填充底部的整个1/3,并且不对其内容进行换行.
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/view_a"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layoutManager="LinearLayoutManager"
app:layout_constraintBottom_toTopOf="@id/view_b"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_weight="2" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/view_b"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layoutManager="LinearLayoutManager"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@id/view_a"
app:layout_constraintVertical_weight="1" />
</androidx.constraintlayout.widget.ConstraintLayout>
我还试着把app:layout_constraintHeight_default="wrap"
加到view_b
.
但随后它总是包装其内容,并扩展到超过三分之一,变得太大.