10

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

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

在这里看我的插图:

在此处输入图像描述

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

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

有任何想法吗?

4

1 回答 1

1

以下是我将如何实现您想要的效果:

列表中的每个项目都应该有一个红色条,它是项目的高度。这样一来,所有的红条都排成一列,看起来好像只有一个红条,而实际上每个项目都有一个。

如果您使用 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>
于 2013-06-02T02:24:44.030 回答