我有一个ConstraintLayout,它可以接受数量可变的ImageViews ...从1到12之间的任意位置。我希望ImageViews可以根据项目的数量来调整大小。例如。 1或2个项目的宽度:110高度:140,而当6个或更多项目的宽度:50高度:60。换句话说,所有项目都应放入约束区域,并相应地调整大小。
<android.support.constraint.ConstraintLayout
android:id="@+id/ingredient_CL"
android:layout_width="match_parent"
android:layout_height="140dp"
android:animateLayoutChanges="true"
android:background="@drawable/item_border">
<ImageView
android:id="@+id/ingredient_tool_0_iv"
android:layout_width="110dp"
android:layout_height="140dp"
android:layout_marginStart="8dp"
android:scaleType="centerInside"
android:visibility="@{step.quantity > 0 ? View.VISIBLE : View.GONE}" />
<ImageView
android:id="@+id/ingredient_tool_1_iv"
android:layout_width="110dp"
android:layout_height="140dp"
android:layout_marginStart="8dp"
android:scaleType="centerInside"
android:visibility="@{step.quantity > 1 ? View.VISIBLE : View.GONE}"/>
...
有什么想法吗?
答案 0 :(得分:0)
如果项的数量根据某些条件而有所不同,则可以使用“交错网格布局管理器”来实现所需的功能。
交错Grid View:基本上是Grid View的扩展,但是在这种情况下,每个Grid的大小(高度和宽度)都不同。交错网格视图在视图中显示不对称项。
RecyclerView支持 StaggeredGridLayoutManager
一个LayoutManager,用于在交错网格中布置子项 编队。它支持水平和垂直布局以及 可以反向排列子级。
请参阅下面的文档链接以更好地理解它。
https://developer.android.com/reference/android/support/v7/widget/StaggeredGridLayoutManager
Android - Difference between Gridlayout and Staggered Gridlayout