12

Я в вызов, чтобы построить макет так:Ресайклер Просмотр с несколькими строками и столбцами - Автоподбор как Flow Layout [Android]

enter image description here

Мой первый понимание было использовать RecyclerView с адаптер, который может обрабатывать каждый элемент и раздувать его макет.

Пока что не очень хорошо.

Я получил эту схему до сих пор:

enter image description here

Я рубка, что я почти там, но на самом деле ... Я провожу неделю думать о том, как сделать это лучше, или просто как пользовательский интерфейс предлагает.

Некоторые из моих попыток были

  1. Используйте макет сетки и изменить максимальное число колонок в зависимости от того, сколько элементов есть в списке
  2. StaggeredGridLayoutManager звучал как мощный кандидат, чтобы исправить это и сделать меня счастливым , но, к сожалению, когда я пытался использовать его, я понимаю, что нам нужно передать несколько spanCount (столбцов) на конструкторе, и я нашел несколько способов обойти это ограничение, изменяя количество столбцов каждой строки, но мне не понравилось конечный результат был не таким, как я видел в других приложениях, таких как Foursquare, когда вы настраиваете свои интересы.
  3. Я проверил эту библиотеку Flow Layout, но я даже не начал ее использовать, потому что я не хочу потерять всю силу просмотра ресайклеров, и я считаю, что есть способ заставить ее работать! ..... Даже зная, что библиотека делает именно то, что мне нужно.

Ребята, я здесь не ищу какой-то уже сделанный мир кода или кто-то, кто выполняет мою работу. На самом деле я ищу свет в конце туннеля.

+0

пораженного вид сетки эффект ... это то, что вы здесь отсутствует ? Или есть еще? – JanithaR

+0

Конструктор с шахматной сеткой нуждается в подсчете диапазона при создании экземпляра, я не хочу исправлять количество столбцов, я хотел бы поместить макет в соответствии с шириной строки по строке –

+0

Попробуйте это. 'public final void onBindViewHolder (RecyclerView.ViewHolder viewHolder, int position) { StaggeredGridLayoutManager.LayoutParams layoutParams = (StaggeredGridLayoutManager.LayoutParams) viewHolder.itemView.getLayoutParams(); layoutParams.setFullSpan (true); } ' – JanithaR

ответ

5

Здравствуйте, если вы ДНТ хотите использовать recyclerview есть другой пример использования пользовательской библиотеки, которая действует как список GitHubLibrary TagLayout

  • Пример кода: -

mFlowLayout.setAdapter(new TagAdapter<String>(mVals) { @Override public View getView(FlowLayout parent, int position, String s) { TextView tv = (TextView) mInflater.inflate(R.layout.tv, mFlowLayout, false); tv.setText(s); return tv; } });

Использование нижеследующего кода Вы можете предварительно набор выбор вы хотели: -

mAdapter.setSelectedList(1,3,5,7,8,9); 

покажет результат, как показано ниже: -

enter image description here

 Смежные вопросы

  • Нет связанных вопросов^_^