我想在Android中定义RelativeLayout的视图的z顺序。

我知道其中一个方法就是打电话给bringToFront。

有更好的方法吗?这将是伟大的,如果我可以在布局xml定义z顺序。


当前回答

如果你想在代码中这样做 你可以这样做

View.bringToFront();

看文档

其他回答

childView.bringToFront()对我来说不起作用,所以我设置了最近添加的项目(覆盖所有其他孩子的项目)的Z翻译为负值,如下所示:

lastView.setTranslationZ(-10);

详见https://developer.android.com/reference/android/view/View.html#setTranslationZ(float)

API 21内置了view.setElevation(float)

使用ViewCompat。setElevation(视图中,浮动);为了向后兼容

更多方法ViewCompat。setZ(v,像素)和ViewCompat。setTranslationZ (v,像素)

另一种方法是收集按钮或视图数组,并使用addView添加到RelativeLayout

请注意,你可以从API级别21开始使用view.setZ(float)。在这里你可以找到更多信息。

最简单的方法就是注意视图添加到XML文件中的顺序。文件的下方意味着z轴的上方。

编辑: 在这里和这里的Android开发者网站上都有记录。(感谢@flightplanner)

如果你想在代码中这样做 你可以这样做

View.bringToFront();

看文档