Представление списка с элементами пользовательского представления с частичным перекрытием (Android)

Я хочу реализовать список в Android, который содержит некоторые настраиваемые представления. Моя проблема в том, что я хочу, чтобы представления располагались один за другим с небольшим перекрытием между ними. как в следующей схеме: введите здесь описание изображения

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

Я пытался расширить ListView, но он кажется очень неясным, какие-либо предложения?

Изменить: это может быть более ясным:

введите здесь описание изображения

Я сделал это, установив высоту разделителя на -50dp. это именно то, чего я хочу добиться, но почему-то это не отражается на моем приложении.


person Daniel L.    schedule 25.11.2012    source источник


Ответы (2)


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

for (int i = 0; i < 30; i++) {
        TextView tv = new TextView(context);
        tv.setText("Text \n Text" + i);

        tv.setBackgroundColor(i % 2 == 0 ? Color.RED : Color.GREEN);

        RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
        lp.addRule(RelativeLayout.ALIGN_PARENT_TOP);
        lp.leftMargin = 0;
        lp.topMargin = (i * 45);
        rl.addView(tv, lp);
}

Позже вы можете управлять позиционированием подвидов, изменяя их значение y (например, если вы хотите добавить анимацию).

Это окончательный результат:

Макет, содержащий перекрывающиеся элементы

person Daniel L.    schedule 27.11.2012
comment
ScrollView не поддерживает повторное использование представлений. Итак, если производительность является фактором, это довольно бесполезно для нескольких представлений. - person Saket; 18.03.2014
comment
Я реализовал переработку представлений для моего представления на основе ScrollView. - person Daniel L.; 18.03.2014
comment
@DanielL.не могли бы вы поделиться своим кодом на github или где угодно? - person AZ_; 21.08.2014

Вероятно, этого можно добиться, используя функцию Camera.setTranslate. См. раздел Android: вертикальное представление списка с перекрывающимися строками и Android: вертикальный трехмерный список для похожих вопросов (с решениями)

person Marc Van Daele    schedule 27.11.2012