是否可以使ListView中的项具有不同的z位置/索引?
我希望ListView中的一个项目始终位于我的布局中的其他视图之上。
请参阅我的插图:
红色条是ListView外部的另一个视图(在我的例子中是一个垂直搜索条)。
我尝试在某个项目上调用View.bringToFront()
,但这根本不起作用。
有什么想法吗?
答案 0 :(得分:1)
以下是我将如何实现您想要的效果:
列表中的每个项目都应该有一个红色条,它是项目的高度。这样所有的红色条排成一排,看起来只有一个红条,实际上每个项目都有一个。
如果您使用FrameLayout
,则子项的顺序决定了绘制顺序,例如FrameLayout
的第3个子项将显示在第1个和第2个孩子的顶部。
然后在运行时,您可以在每个项目的内容上方或下方排列红色条。在适配器的bindView
方法中,您可以使用bringToFront
方法将红色条带到该视图的前面。不要忘记在ListView
中回收视图,因此您需要每次都将红条移动到正确的z位置。
以下是视图中项目的一个非常简化的示例XML文件,如果您需要更多信息,请告诉我。
item_red_bar_bottom.xml:
<FrameLayout ...>
<ImageView .../> <!-- Red bar on bottom -->
<FrameLayout ...>
<!-- Normal item contents go here -->
</FrameLayout>
</FrameLayout>