我需要添加一些空间开始的第一项和结束的最后一项的回收,所以他们可以滚动到屏幕的边缘(因为他们不能与回收器视图的边距或填充)
问题是项目之间的间距应该不同,所以我不能只是将这个“空间”添加到项目布局中。现在,我正试图将ItemEdition添加到我的回收器中,但结果就是这样:
我的物品装饰类:
public class HorizontalItemDecoration extends RecyclerView.ItemDecoration {
private final int horizontalSpaceWidth;
public HorizontalItemDecoration(int horizontalSpaceWidth) {
this.horizontalSpaceWidth = horizontalSpaceWidth;
}
@Override
public void getItemOffsets(@NonNull Rect outRect, @NonNull View view, RecyclerView parent,
@NonNull RecyclerView.State state) {
if (parent.getChildAdapterPosition(view) == 0)
outRect.left = horizontalSpaceWidth;
else if (parent.getChildAdapterPosition(view) == parent.getChildCount() - 1)
outRect.right = horizontalSpaceWidth;
}
}
项目之间的默认行间距为4dp。
我还尝试将LayoutParams添加到items的父视图中,但其工作方式完全相同
如果位置不是0或n-1,则必须使用否则来重置值,因为视图正在重用
@Override
public void getItemOffsets(@NonNull Rect outRect, @NonNull View view, RecyclerView parent,
@NonNull RecyclerView.State state) {
if (parent.getChildAdapterPosition(view) == 0)
outRect.left = horizontalSpaceWidth;
else if (parent.getChildAdapterPosition(view) == parent.getChildCount() - 1)
outRect.right = horizontalSpaceWidth;
else {
outRect.right = 0;
outRect.left = 0;
}
}
注意,这个空间只在最末端可见,因为我不想改变布局。我可以使recycerview有一个50dp的边际底部,但我不想这样做。
问题内容: 我打算开发一个可在内显示一些动态数据的应用程序。所以我决定 在main中添加一个 。这是我的应用程序代码: 我的主要活动: 它是布局文件: 在这个recyclerView内部还有另一个: 他们的适配器Main(RAdapter): 和第二个适配器: 我的问题是:正如您在CAdapter中看到的那样,仅显示构造函数的Log消息。 更新:如果有另一种方法可以在另一张动态卡中显示某些动态
我正在尝试一个应用程序的回收器视图和浮动操作按钮。我遇到的问题是浮动操作按钮阻碍了回收器视图中的按钮。我查了手机应用程序(您在gridvew中显示联系人的应用程序)等Android应用程序是如何设计来解决这个问题的,我看到底部留有空白,这为回收器视图和浮动操作按钮之间提供了空间,用户只需滚动到底部以避免重叠。我尝试在回收器视图之后添加一个视图,但没有显示,这个视图也应该随着回收器视图行一起移动。我
问题内容: 如何使用exec.command启动带有空格的文件?添加引号似乎无效,“或%20代替空格也不起作用。 问题答案: 这有效,但仅在Windows中
我尝试在我的GridLayout RecyclerView中添加水平分隔线。但出于某种原因,分割线没有出现。 作为替代方法,我使用具有 2 个参数的 addItemDecoration 方法,其中第二个参数是索引,之后添加 ItemDecoration。 它强制关闭,但有以下例外: 这个尺寸意味着什么?为什么是零? 可能是因为我在活动而不是片段中使用此回收器视图吗? P、 美国:适配器没有问题;它
在我的RecolyerView中,项目贴得很近,我想在项目之间增加空间,而不在项目本身添加边距。我在想我怎么才能做到这一点? 我希望它看起来像: 我是否可以编辑XML本身来实现这一点?