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