【问题标题】:Android ConstraintLayout with Adaptable ImageView sizes具有自适应 ImageView 大小的 Android ConstraintLayout
【发布时间】:2018-11-12 06:49:49
【问题描述】:

我有一个 ConstraintLayout,它将接受可变数量的 ImageViews... 从 1 到 12。我希望 ImageViews 根据项目的数量调整大小。例如。 1 或 2 个项目可能有 Width: 110 Height: 140 而当有 6 个或更多项目时 Width: 50 Height: 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}"/>

...

有什么想法吗?

【问题讨论】:

    标签: android layout


    【解决方案1】:

    如果您的项目数量可以根据某些条件而变化,您可以使用交错网格布局管理器来实现您想要的。

    交错网格视图:它基本上是网格视图的扩展,但在此每个网格都有不同的大小(高度和宽度)。交错网格视图在视图中显示不对称的项目。

    RecyclerView 支持StaggeredGridLayoutManager

    在交错网格中布置子级的 LayoutManager 形成。它支持水平和垂直布局以及 能够反向布局子级。

    请参阅以下文档链接以更好地理解它。

    https://developer.android.com/reference/android/support/v7/widget/StaggeredGridLayoutManager

    Android - Difference between Gridlayout and Staggered Gridlayout

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-05
      • 2018-06-12
      • 1970-01-01
      • 2018-09-26
      • 1970-01-01
      相关资源
      最近更新 更多