Мне нужна сетка с фиксированным размером, но динамически изменяющимся количеством диапазонов (поэтому ячейки в сетке будут меняться в размере при изменении spancount).
Чего я не хочу, так это:
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- This constrainer view was something I just tested, didn't improve much. And felt hacky (I wanted to have the recyclerview as wrap content) !-->
<View
android:id="@+id/constrainer"
android:layout_width="200dp"
android:layout_height="200dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/grid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constrainedWidth="true"
app:layout_constrainedHeight="true"
app:layout_constraintTop_toTopOf="@+id/constrainer"
app:layout_constraintLeft_toLeftOf="@+id/constrainer"
app:layout_constraintRight_toRightOf="@+id/constrainer"
app:layout_constraintBottom_toBottomOf="@+id/constrainer"
app:spanCount="3"
tools:itemCount="9"
tools:listitem="@layout/MyItem" />
И элемент сетки:
<View xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:background="#FF00FF00"/>
А ниже находится менеджер компоновки:
grid.layoutManager = object : GridLayoutManager(this.context, adapter.size){
override fun canScrollVertically(): Boolean {
return false
}
override fun canScrollHorizontally(): Boolean {
return false
}
}
Текущая настройка, опубликованная выше, работает в измерении x, но я не могу понять, смогу ли я удалить всю прокручиваемость и заставить ее работать в измерении Y.Я не могу заставить свои клетки правильно вырасти.
Использую ли я не тот инструмент (Recyclerview) для этой работы?Как мне лучше всего достичь желаемого поведения?(Я могу, вероятно, сделать Linearlayouts / constraintlayout, чтобы это сработало, но я думаю, что должен быть простой способ, которого мне не хватает)