Динамические столбцы в RecyclerView

#java #android #android-recyclerview #gridlayoutmanager #staggeredgridlayout

#java #Android #android-recyclerview #gridlayoutmanager #staggeredgridlayout

Вопрос:

я хочу создать сетку в Android, в которой предположим

  1. если я передам arraylist с 5 элементами, в первой строке должно быть 3 столбца, а в следующей строке должно быть 2 столбца с центрированным
  2. если я передам arraylist с 6 элементами, в первой строке должно быть 3 столбца, а в следующей строке должно быть 3 столбца
  3. если я передаю arraylist с 7 элементами, в первой строке должно быть 3 столбца, в следующей строке должно быть 3 столбца, а в следующей строке должен быть 1 столбец с центрированным

Комментарии:

1. Если вы используете GridView, то пытались ли вы установить значение столбца 3 в вашем xml?

2. @pooja нет, это не работает, он отображает 3 в первом столбце и 2 во втором, но не в центре

3. хорошо, теперь я понял суть вашего вопроса, увидев ваше изображение

Ответ №1:

Я бы посоветовал вам использовать FlexBoxLayout . Он похож на CSS FlexBox и точно соответствует вашим потребностям.

Просто добавьте deppendency в Gradle:

 dependencies {
    compile 'com.google.android:flexbox:0.2.3'
}
  

Поместите макет в файл .xml:

 <com.google.android.flexbox.FlexboxLayout/>
  

и динамически добавлять дочерние элементы представления:

 flexBox.addView(child);