我想知道如何在网格视图中显示我的笔记、清单、图像的快照。创建网格视图没有问题,但创建它的预览是我现在面临的挑战,因为我需要根据创建时间向网格添加不同类型的视图(文本、清单、图像视图)。仅适用于图像或文本等单一类型的视图。
或者换句话说。如何将不同的视图动态添加到 GridView 适配器?
感谢所有或任何帮助。
谢谢。
我想知道如何在网格视图中显示我的笔记、清单、图像的快照。创建网格视图没有问题,但创建它的预览是我现在面临的挑战,因为我需要根据创建时间向网格添加不同类型的视图(文本、清单、图像视图)。仅适用于图像或文本等单一类型的视图。
或者换句话说。如何将不同的视图动态添加到 GridView 适配器?
感谢所有或任何帮助。
谢谢。
他们肯定不会将 GridView 用于 google Keep - 但可能仍然是适配器。
要在适配器中使用不同的视图,您可以使用不同的视图类型:
getViewTypeCount()
以返回您支持的视图类型的数量。getItemViewType(int position)
为此特定项目返回适当的类型。getView(int position, View convertView, ViewGroup parent)
。请记住,回收规则、ViewHolder 等仍然适用。对于多种类型,回收只发生在正确的类型上。
谷歌很可能正在使用类似于GridLayout的东西,如果不是实际使用 GridLayout 的话。
很有可能布局也是以编程方式创建的,以允许小部件根据它们各自显示的内容具有不同的大小。
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);
这个管理使你需要的所有东西 StaggeredGridLayoutManager 或查看RecyclerView 中的这个 sorce Heterogenous Layouts