【问题标题】:How to offset second column of a RecyclerView in Android?如何在 Android 中偏移 RecyclerView 的第二列?
【发布时间】:2019-05-14 15:25:39
【问题描述】:

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

我想偏移 recyclerView 的第二列,使它看起来有点像键盘的按键行,而不是完美地对齐项目。

我看到另一个问题与我的要求相同(尽管水平而不是垂直)但答案没有帮助,我不想让线程恢复生机^^ RecyclerView - horizontal, two-row grid, second row offset

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

编辑:感谢 Bled K. 的解决方案:D 我添加了这个函数并在 OnBindViewHolder 中调用它:

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 是包含我的卡片视图和所有内容的约束布局。

【问题讨论】:

    标签: java android android-layout android-recyclerview


    【解决方案1】:

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

    否则,您这边的一些代码将提供更多帮助。

    【讨论】:

      猜你喜欢
      • 2014-09-22
      • 1970-01-01
      • 2015-02-14
      • 2015-10-05
      • 2016-03-20
      • 1970-01-01
      • 2016-12-22
      • 2019-01-22
      • 2022-08-16
      相关资源
      最近更新 更多