Java 如何在RecyclerView中设置负边距装饰?或者为什么这是不可能的?

Java 如何在RecyclerView中设置负边距装饰?或者为什么这是不可能的?,java,android,android-recyclerview,decorator,Java,Android,Android Recyclerview,Decorator,我有一个回收站。出于图形设计的原因,这个回收商拥有一个填充物。对于recyclerview的某些项目,我不需要使用此填充 因此,我的意图是为itemDecorator定义一个负边距,如下所示: class MarginDecoration extends RecyclerView.ItemDecoration { private int marge_small_border; public MarginDecoration(Context context) {

我有一个回收站。出于图形设计的原因,这个回收商拥有一个填充物。对于recyclerview的某些项目,我不需要使用此填充

因此,我的意图是为itemDecorator定义一个负边距,如下所示:

 class MarginDecoration extends RecyclerView.ItemDecoration {
        private int marge_small_border;

        public MarginDecoration(Context context) {
            marge_small_border = context.getResources().getDimensionPixelSize(R.dimen.marge_small_border);
        }

        @Override
        public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
            outRect.set(-marge_small_border, 0, -marge_small_border, 0);
        }
 }
这不管用

编辑:

3。我的需要:(正确的图片)

这是我想做的

1。左图

橙色是保存RecyclerView的框架布局,因此带有水平填充

我的RecyclerView有一个标题、一张图片,然后是按行渲染的项目

我的要求是: -要使标题充满屏幕(水平尺寸上没有填充)=>在图像/标题级别看不到橙色 -对于非标题项之间的每个空格具有相同的维度

2。我今天的解决方案是使用decorators

我为Xdp的每一项都安排了一名装饰师 我在Xdp的容器框架上放了一个填充物 =>我对每个非标题项都有2Xdp

现在,我应该删除header的填充,所以添加一个-Xdp的decorator

问题:

你怎么知道的

我们也欢迎任何其他解决方案

编辑:

根据项目位置制作项目装饰器实际上是不可行的,因为在列表中,然后可以显示标签(充满)。
添加块中的项目数量(标签之间)将使标签前的项目空间无效。

我也有类似问题。我不知道你是否还需要帮助,但我做了以下工作:

  • 将填充添加到回收器视图

  • 将回收器视图的
    android:clipPadding
    android:clipChildren
    标志设置为false

  • 向标题项添加与RV所给边距相等的负填充

  • (可选)如果要使中间分隔符和边的大小相等,请按上述方式将一半填充给列表项,一半填充给回收视图


  • 你为什么不去掉填充?我放了一些图表和背景信息。然后加上填充或空白。我不明白你的意思,对不起!正如我所说的,从你不想要的地方去掉填充物,放在你需要的地方。这太简单了。