- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在开发一个 Android 应用程序,其中使用 recyclerView 向用户显示该应用程序的可用服务列表。现在列表的 UI 是一个简单的两列、可滚动的 recyclerView,看起来就像在 gridview 中一样捕捉项目。
我想偏移 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 是包含我的cardview 和所有内容的constraintLayout。
最佳答案
我假设您使用自己的Adapter
和ViewHolder
。在自定义 ViewHolder 中创建一个方法,例如 ... void setViewOffset(intposition)
,如果位置是您想要的位置,您可以在其中为 View 设置不同的左边距。在适配器的 onBindViewHolder(intposition)
中调用此方法并传递位置。
否则,您这边的一些代码将提供更多帮助。
关于java - 如何在 Android 中偏移 RecyclerView 的第二列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56133902/
我是一名优秀的程序员,十分优秀!