具有部分重叠的自定义视图项的列表视图(Android)

具有部分重叠的自定义视图项的列表视图(Android),android,android-layout,android-listview,android-ui,Android,Android Layout,Android Listview,Android Ui,我想在Android中实现一个包含一些自定义视图的列表。 我的问题是,我希望视图将被一个接一个地放置,它们之间有一点重叠。与以下模式类似: 我还想控制这种重叠,当用户单击其中一个项目时,它们会彼此分开 我试图扩展ListView,但它似乎非常模糊,有什么建议吗 编辑: 这一点可以更加明确: 我通过将分隔高度设置为-50dp来实现。 这正是我想要实现的,但不知何故,它并没有反映在我的应用程序上。我在孩提时代通过使用带有单个相对布局的滚动视图实现了这一点。 然后,我通过定义规则和边距动态放置视图:

我想在Android中实现一个包含一些自定义视图的列表。 我的问题是,我希望视图将被一个接一个地放置,它们之间有一点重叠。与以下模式类似:

我还想控制这种重叠,当用户单击其中一个项目时,它们会彼此分开

我试图扩展ListView,但它似乎非常模糊,有什么建议吗

编辑: 这一点可以更加明确:

我通过将分隔高度设置为-50dp来实现。
这正是我想要实现的,但不知何故,它并没有反映在我的应用程序上。

我在孩提时代通过使用带有单个相对布局的滚动视图实现了这一点。 然后,我通过定义规则和边距动态放置视图:

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);
}
for(int i=0;i<30;i++){
TextView tv=新的TextView(上下文);
tv.setText(“Text\n Text”+i);
tv.setBackgroundColor(i%2==0?Color.RED:Color.GREEN);
RelativeLayout.LayoutParams lp=新的RelativeLayout.LayoutParams(LayoutParams.MATCH_父项,LayoutParams.WRAP_内容);
lp.addRule(RelativeLayout.ALIGN\u PARENT\u TOP);
lp.leftMargin=0;
lp.topMargin=(i*45);
rl.addView(电视、lp);
}
稍后,可以通过更改子视图的y值来控制子视图的位置(例如:如果要添加动画)

这是最终结果:


这可能通过使用
Camera.setTranslate
功能来实现。有关类似的问题(包括解决方案),请参阅和。

ScrollView不支持视图回收。因此,如果性能是一个因素,那么对于几个视图来说,它是非常无用的。我已经为基于ScrollView的视图实现了视图回收。@DanielL。您想在github或任何您喜欢的地方共享您的代码吗?