Android: отображение карт, таких как макет, как в Google Keep
Мне было интересно, как показать снимок моих заметок, контрольных списков, изображений в виде сетки. У меня нет проблем с созданием сетки, но создание предварительного просмотра - это проблема, с которой я сталкиваюсь сейчас, так как мне нужно добавить в сетку разные типы представлений (текст, контрольный список, изображение) в зависимости от времени их создания. Прекрасно подходит для одного типа просмотра, например изображения или текста.
Или, другими словами. Как добавить различные представления динамически к адаптеру GridView?
Все или любая помощь приветствуется.
Спасибо.
![enter image description here]()
Ответы
Ответ 1
Они, конечно же, не используют GridView для Google Keep - но, вероятно, Adapter.
Чтобы использовать разные виды с вашим адаптером, вы можете использовать разные типы просмотра:
Имейте в виду, что правила утилизации, ViewHolder и т.д. все еще применяются. Для нескольких типов рециркуляция выполняется только для правильного типа.
Маркус Кёрнер разделил суть Джейка Уортона на G + недавно Это может быть полезно.
Ответ 2
Скорее всего Google использует что-то похожее на GridLayout, если не использует GridLayout.
Скорее всего, макет также создается программно, чтобы позволить виджетам быть разных размеров на основе контента, отображаемого каждым из них.
Ответ 3
Взгляните на просмотр с измененным типом
Это поможет сделать все, что вам нужно. StaggeredGridLayoutManager
или посмотрите на этот sorce Гетерогенные макеты внутри RecyclerView
Ответ 4
recyclerView= (RecyclerView) findViewById(R.id.recycler);
recyclerView.setLayoutManager(new
StaggeredGridLayoutManager(2,StaggeredGridLayoutManager.VERTICAL));
initData();
MasonryAdapter adapter=new MasonryAdapter(productList);
recyclerView.setAdapter(adapter);
SpacesItemDecoration decoration=new SpacesItemDecoration(16);
recyclerView.addItemDecoration(decoration);