【问题标题】:Android: Showing cards like layout as in Google KeepAndroid:在 Google Keep 中显示类似布局的卡片
【发布时间】:2013-04-19 04:07:51
【问题描述】:

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

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

感谢所有或任何帮助。

谢谢。

【问题讨论】:

标签: android android-layout gridview


【解决方案1】:

他们肯定不会将 GridView 用于 google Keep - 但可能是 Adapter

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

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

请记住,回收、ViewHolder 等规则仍然适用。对于多种类型,仅对正确的类型进行回收。

Marcus Körnershared a gist by Jake Wharton on G+ recently 这可能有用。

【讨论】:

    【解决方案2】:

    Google 很可能使用类似于 GridLayout 的东西,如果不是实际使用 GridLayout。

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

    【讨论】:

      【解决方案3】:

      看看这个recycle view with stagged

      这个管理可以满足您的所有需求 StaggeredGridLayoutManager 或者看看这个sorceHeterogenous Layouts inside 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);
        

        【讨论】:

        • 什么是 SpacesItemDecoration?
        猜你喜欢
        • 1970-01-01
        • 2014-04-13
        • 1970-01-01
        • 2016-07-16
        • 1970-01-01
        • 1970-01-01
        • 2021-11-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多