16

我想知道如何在网格视图中显示我的笔记、清单、图像的快照。创建网格视图没有问题,但创建它的预览是我现在面临的挑战,因为我需要根据创建时间向网格添加不同类型的视图(文本、清单、图像视图)。仅适用于图像或文本等单一类型的视图。

或者换句话说。如何将不同的视图动态添加到 GridView 适配器?

感谢所有或任何帮助。

谢谢。

在此处输入图像描述

4

4 回答 4

3

他们肯定不会将 GridView 用于 google Keep - 但可能仍然是适配器

要在适配器中使用不同的视图,您可以使用不同的视图类型:

  1. 覆盖getViewTypeCount()以返回您支持的视图类型的数量。
  2. getItemViewType(int position)为此特定项目返回适当的类型。
  3. 在 中创建正确的视图getView(int position, View convertView, ViewGroup parent)

请记住,回收规则、ViewHolder 等仍然适用。对于多种类型,回收只发生在正确的类型上。

Marcus Körner 最近在 G+ 上分享了 Jake Wharton 的一个要点,这可能很有用。

于 2013-04-25T21:12:38.050 回答
1

谷歌很可能正在使用类似于GridLayout的东西,如果不是实际使用 GridLayout 的话。

很有可能布局也是以编程方式创建的,以允许小部件根据它们各自显示的内容具有不同的大小。

于 2013-06-29T17:06:58.863 回答
1
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);
于 2016-04-11T08:16:39.960 回答
1

看看这个带有 stagged 的​​回收视图

这个管理使你需要的所有东西 StaggeredGridLayoutManager 或查看RecyclerView 中的这个 sorce Heterogenous Layouts

于 2016-04-11T08:03:36.720 回答