在RecyclerView中重叠位置/视图

4

我一直在尝试在RecyclerView中重叠两个相邻的位置,但是失败了。我想让第一个位置的一部分重叠/覆盖第二个位置。

我一直在尝试使用自定义的RecyclerView.ItemDecoration和它的getItemOffsets,但似乎只能在位置上添加填充/边距,而不能将其转换为视图父级之外的新位置。

有没有人知道如何在RecyclerView中实现这一点的指针?

1个回答

7

嗯,你也可以在RecyclerView.ItemDecoration中添加负边距(negative margin)


例子:

ItemDecorator.java

public class ItemDecorator extends RecyclerView.ItemDecoration {
    private final int mSpace;

    public ItemDecorator(int space) {
        this.mSpace = space;
    }

    @Override
    public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
        outRect.left = mSpace;
        outRect.right = mSpace;
        outRect.bottom = mSpace;
        outRect.top = mSpace;
    }
}

MainActivity.java

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ArrayList<String> arrayList = new ArrayList<>();
        arrayList.add("Hi");
        arrayList.add("World");
        arrayList.add("What");

        RecyclerView recyclerView = (RecyclerView) findViewById(R.id.rec1);
        //Negative margin!
        ItemDecorator itemDecorator = new ItemDecorator(-30);     
        recyclerView.setAdapter(new CustomAdapter(arrayList));
        recyclerView.addItemDecoration(itemDecorator);
        recyclerView.setLayoutManager(new LinearLayoutManager(this));

    }
}

谢谢,真不敢相信我竟然错过了那个 :) - Lucas Arrefelt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接