我目前正在开发一个安卓应用程序,其中我使用recyclerView向用户显示该应用程序的可用服务列表。现在,列表的UI是一个简单的两列可滚动的recyclerView,看起来就像网格视图中的项目被捕捉一样。
我想要偏移recyclerView的第二列,这样看起来就像键盘的键行一样,而不是完全对齐项目。
我已经看到了另一个问题,它要求和我做同样的事情(虽然是水平的,而不是垂直的),但答案没有帮助,我不想让这条线回到生活中来^^ RecyclerView - horizontal, two-row grid, second row offset
有谁知道这样做的方法吗?也许某个地方存在一个图书馆,但我到处寻找答案,但都没有成功……
编辑:感谢Bled提供的解决方案: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。
发布于 2019-05-14 23:33:25
我将假设您使用的是自己的Adapter和ViewHolder。在您的自定义ViewHolder中创建一个方法,比如... void setViewOffset(int position),如果位置是您想要的位置,您可以在其中设置视图的不同左边距。在适配器的onBindViewHolder(int position)中调用此方法并传递位置。
否则,你方的一小段代码将允许更多的帮助。
https://stackoverflow.com/questions/56133902
复制相似问题