首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Android中对RecyclerView的第二列进行偏移?

如何在Android中对RecyclerView的第二列进行偏移?
EN

Stack Overflow用户
提问于 2019-05-14 23:25:40
回答 1查看 106关注 0票数 0

我目前正在开发一个安卓应用程序,其中我使用recyclerView向用户显示该应用程序的可用服务列表。现在,列表的UI是一个简单的两列可滚动的recyclerView,看起来就像网格视图中的项目被捕捉一样。

我想要偏移recyclerView的第二列,这样看起来就像键盘的键行一样,而不是完全对齐项目。

我已经看到了另一个问题,它要求和我做同样的事情(虽然是水平的,而不是垂直的),但答案没有帮助,我不想让这条线回到生活中来^^ RecyclerView - horizontal, two-row grid, second row offset

有谁知道这样做的方法吗?也许某个地方存在一个图书馆,但我到处寻找答案,但都没有成功……

编辑:感谢Bled提供的解决方案:D我添加了此函数并在OnBindViewHolder中调用它:

代码语言:javascript
复制
public void setViewOffset(int position){
            if(position==1){
                ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) this.f.getLayoutParams();
                params.topMargin = cardView.getHeight()/3;
                this.f.setLayoutParams(params);
            }else{
                ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) this.f.getLayoutParams();
                params.topMargin = 0;
                this.f.setLayoutParams(params);
            }
        }

在我的例子中,this.f是包含我的cardview和所有内容的constraintLayout。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-14 23:33:25

我将假设您使用的是自己的AdapterViewHolder。在您的自定义ViewHolder中创建一个方法,比如... void setViewOffset(int position),如果位置是您想要的位置,您可以在其中设置视图的不同左边距。在适配器的onBindViewHolder(int position)中调用此方法并传递位置。

否则,你方的一小段代码将允许更多的帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56133902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档