当前位置: 首页 > 知识库问答 >
问题:

使用GridLayoutManager(RecycerView)将最后一个网格设置为全宽

鄂慈
2023-03-14

是否可以使用GridLayoutManager或者我必须构建自定义设计?

请帮忙。

共有1个答案

宰父学
2023-03-14

您可以使用GridLayoutManager中的LayoutManager.SetSpansizeLookup方法

下面是使用它的方法

final GridLayoutManager layoutManager = new GridLayoutManager(context, 2);
        layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
        layoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
            @Override
            public int getSpanSize(int position) {
                if (mAdapter != null) {
                    switch (mAdapter.getItemViewType(position)) {
                        case 1:
                            return 1;
                        case 0:
                            return 2; //number of columns of the grid
                        default:
                            return -1;
                    }
                } else {
                    return -1;
                }
            }
        });

现在,您必须在适配器中确定视图类型

@Override
public int getItemViewType(int position) {
    return (position == getItemCount() - 1) ? 0 : 1; // If the item is last, `itemViewType` will be 0
}
 类似资料:
  • 当JRadioButton设置为final时,如何更改其标签? 这是构造函数中初始化单选按钮的一段代码,当按下检查按钮时,选定的单选按钮的值被发送到验证用户答案的方法: 选择“下一个问题”按钮时,单选按钮的文本标签需要更改为下一组答案。不幸的是,由于单选按钮设置为final,这会导致应用程序崩溃。 我该怎么做?

  • 附注:第一次用拖放开发任何东西。 关于如何使用ListView实现此功能,有很多主题,例如:https://raw.githubusercontent.com/btownRippleman/furthestProgress/master/furthestProgress/src/com/anappforthat/android/languagelineup/dynamicListView.java

  • 问题内容: 当我不知道行数时,是否可以使网格项目从第一行到最后一行? 可以说我有以下HTML,其中的框数未知。 如何使第一个网格线到最后一个网格线的第三个跨度? 问题答案: 您可以将grid-row-start添加到该框中的css,并将其设置为跨越一个非常大的数字。 编辑-免责声明: 这是非最佳解决方案,并非在所有浏览器中都有效,请当心!尽管这在某些浏览器(Chrome)中似乎可行,但其他浏览器(

  • 我试图解析全名,将其读作名字、中间名、姓氏和后缀。我已经尝试了半段SQL代码,但我需要帮助根据以下逻辑获取后缀。 如果没有后缀,则留下字段NULL如果没有中间名,则留下字段NULL ,Ltrim(子字符串(名称,1,Isnull(Nullif(CHARINDEX(“”,NAME),0),1000))作为FirstName,Ltrim(子字符串(名称,CHARINDEX(“”,NAME),CASE

  • 我想使用节标题实现类似网格的布局。想想 https://github.com/TonicArtos/StickyGridHeaders 我现在所做的: 现在常规项目和标题的跨度大小都为1。如何解决这个问题?