Как перекрыть элементы в LinearLayoutManager – RecyclerView (например, карты укладки)

Возможно ли совместить элементы из RecyclerView?
Я пытаюсь использовать LinearLayoutManager.
Мои требования такие же, как в LinearLayoutManager, и мне просто нужно перекрывать элементы внутри сверху вниз. (Например, укладки карт)

Я видел некоторый вариант , используя ListView. Итак, я полагаю, что это будет возможно и в RecyclerView. Но после нескольких исследований я чувствую, что у него довольно много времени, чтобы реализовать собственный менеджер компоновки и достаточно понять это. (Я заглянул в сообщение Дейва О создании пользовательского LayoutManager )

Итак, теперь я думаю, что мне просто нужно использовать вариацию ListView, основанную на моем требовании, вместо того, чтобы справляться с этой сложностью менеджера пользовательских макетов.

Но мне просто нужно сделать элементы внутри, чтобы перекрыться. Я чувствую, что может быть какое-то другое направление, о котором я еще не знаю. Pls сообщит мне, есть ли какие-либо помимо вышеперечисленного VariView ListView и Custom Layout Manager.

Я также опубликую свои выводы ниже.

Я предполагаю, что вы ищете частичное перекрытие (например, колода карт слегка раздувается). Если это так, это выглядит довольно просто с RecyclerView и пользовательским ItemDecoration. Вот тривиальный пример того, который перекрывает элементы на 90 пикселей вертикально:

public class OverlapDecoration extends RecyclerView.ItemDecoration { private final static int vertOverlap = -90; @Override public void getItemOffsets (Rect outRect, View view, RecyclerView parent, RecyclerView.State state) { outRect.set(0, vertOverlap, 0, 0); } } 

Этот пример жестко кодирует смещение, но если ваши элементы списка различаются по высоте, вам нужно будет измерить и добавить логику для этого.

Добавьте это украшение в RV перед настройкой layoutmanager. Я пробовал его с помощью StaggeredGrid, но он должен работать с LinearLayout и Grid LM.