Android ConstraintLayout с адаптируемыми размерами ImageView - PullRequest
0 голосов
/ 12 ноября 2018

У меня есть 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}"/>

...

Есть идеи?

1 Ответ

0 голосов
/ 12 ноября 2018

Если у вас есть количество элементов, которые могут варьироваться в зависимости от каких-либо условий, вы можете использовать Staggered Grid Layout Manager для достижения того, что вы хотите.

Вид в шахматном порядке: По сути, это расширение вида в виде сетки, но в этом случае каждая сетка имеет различные размеры (высота и ширина). В режиме «Смещенная сетка» отображаются асимметричные элементы.

RecyclerView поддерживает StaggeredGridLayoutManager

LayoutManager, который размещает детей в шахматном порядке образование. Он поддерживает горизонтальное и вертикальное расположение, а также Возможность разметки детей в обратном порядке.

См. Ниже ссылки на документацию для лучшего понимания.

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

Android - разница между Gridlayout и Staggered Gridlayout

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...