ListView项目的z位置不同

时间:2013-04-29 18:38:57

标签: android listview z-index always-on-top

是否可以使ListView中的项具有不同的z位置/索引?

我希望ListView中的一个项目始终位于我的布局中的其他视图之上。

请参阅我的插图:

enter image description here

红色条是ListView外部的另一个视图(在我的例子中是一个垂直搜索条)。

我尝试在某个项目上调用View.bringToFront(),但这根本不起作用。

有什么想法吗?

1 个答案:

答案 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>