例如,这里有 LinearLayout 中的 6 个 subview 。
- 线性布局
- 查看0
- View 1
- View 2
- View 3
- View 4
- View 5
在某些情况下,我想让View0 位于其他 View 之上,也就是说,View0 不能与其他 View 重叠。
bringToFront
和 bringChildToFront
方法,它们会将 View0 的索引更改为:
- 线性布局
- View 1
- View 2
- View 3
- View 4
- View 5
- 查看0
我试过 ViewCompat.setTranslationZ
方法,但是,它不起作用。
如何在不更改 View0 的索引的情况下使 View0 位于其他 View 之上?
最佳答案
您需要子类化 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/