android - 具有不同项目(组和子项目)的 RecyclerView

标签 android android-layout android-gridlayout android-recyclerview gridlayoutmanager

我正在做一个 RecyclerView,它将有两个不同的项目,但我不知道我该怎么做。

首先:我有一个对象的ArrayList,但我不知道如何将与日期相关的时间放入RecyclerView

  • 日期 - 组项目。

  • Times - 子项。

     Object {
     Date date;
     ArrayList times;
     }
    

第二:如果项目的位置不是预期的,我如何根据适配器中的项目更改 spanSize? (GridLayoutManager)

最佳答案

要回答您的第二部分,要根据项类型(组或子项)更改跨度大小,您可以在 GridLayoutManager 上设置跨度大小查找。在您的适配器中,您实现 getItemViewType() 并根据位置返回 View 类型。例如。 0 代表组,1 代表 child ,在这种情况下 MyAdapter.VIEW_TYPE_GROUP 将为 0。

RecyclerView list = (RecyclerView) view.findViewById(
        R.id.my_fragment_my_recycler_view);
GridLayoutManager layoutManager = new GridLayoutManager(getActivity(), 5);
layoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
    @Override
    public int getSpanSize(int position) {
        if (list.getAdapter().getItemViewType(position) == MyAdapter.VIEW_TYPE_GROUP) {
            // return the number of columns so the group header takes a whole row
            return 5
        }
        // normal child item takes up 1 cell
        return 1;
    }
});

关于android - 具有不同项目(组和子项目)的 RecyclerView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30147512/

相关文章:

java - Android - OpenCV 模板匹配

安卓+Admob : Error: String types not allowed (at 'configChanges' with value(etc. ..)

android - 如何在 ViewBinder 中为 ImageButton 设置 onClick 监听器?

java - 安卓相机 : Get Picture Uri after the photo is taken

java - SDK项目的结构和Gradle构建?

Android:将ImageView拖离屏幕

android - 如何在运行时计算屏幕高度和宽度?

android - 尽管 ellipsize=end,但带有长文本的 Textview 会在 GridLayout 中推出其他 View

android - 如何设置android :layout_columnWeight ="1" programmatically to an element in an android support v7 Gridlayout

java - StaggeredGridLayoutManager 显示类似 GridLayoutManager 的图像