android开发分享使用SpanSizeLookup在GridLayoutManager中设置项目的范围

我想用节标题来实现网格状的布局。 想想https://github.com/TonicArtos/StickyGridHeaders

我现在应该做什么:

mRecyclerView = (RecyclerView) view.findViewById(R.id.grid); mLayoutManager = new GridLayoutManager(getActivity(), 2); mLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() { @Override public int getSpanSize(int position) { switch(mAdapter.getItemViewType(position)){ case MyAdapter.TYPE_HEADER: return 1; case MyAdapter.TYPE_ITEM: return 2; default: return -1; } } }); mRecyclerView.setLayoutManager(mLayoutManager); 

现在,常规项目和标题的跨度大小都是1.我该如何解决这个问题?

    问题是,标题的跨度大小应为2,而常规项目的跨度大小应为1.因此,正确的实现是:

     mLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() { @Override public int getSpanSize(int position) { switch(mAdapter.getItemViewType(position)){ case MyAdapter.TYPE_HEADER: return 2; case MyAdapter.TYPE_ITEM: return 1; default: return -1; } } }); 

    标题的跨度应等于整个列表的跨度数。

     mLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() { @Override public int getSpanSize(int position) { switch(mAdapter.getItemViewType(position)){ case MyAdapter.TYPE_HEADER: return mLayoutManager.getSpanCount(); case MyAdapter.TYPE_ITEM: return 1; default: return -1; } } }); 

    回答我自己的问题:设置适配器后,从Activity中覆盖getSpanSizeLookup()。

      以上就是android开发分享使用SpanSizeLookup在GridLayoutManager中设置项目的范围相关内容,想了解更多android开发(异常处理)及android游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/addevelopment/518308.html

      (0)
      上一篇 2020年12月6日
      下一篇 2020年12月6日

      精彩推荐