例如,这是LinearLayout中的6个子视图。


线性布局


查看0
查看1
视图2
视图3
查看4
查看5



在某些情况下,我想将View0置于其他视图的顶部,也就是说,View0不能与其他视图重叠。

有方法bringToFrontbringChildToFront,它们会将View0的索引更改为:


线性布局


查看1
视图2
视图3
查看4
查看5
查看0



我尝试了ViewCompat.setTranslationZ方法,但是它不起作用。

如何在不更改View0索引的情况下将View0置于其他视图之上?

最佳答案

您将需要子类LinearLayout,使用setChildDrawingOrderEnabled(true),并覆盖getChildDrawingOrder()以返回最后一个项目的索引。

因此,在您的示例中,您将在getChildDrawingOrder(int childCount, int i)中返回以下内容:

return (childCount + (i-1)) % childCount;

关于android - 如何在不更改 View 索引的情况下将 View 置于LinearLayout的顶部?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37234417/

10-10 23:55