为了账号安全,请及时绑定邮箱和手机立即绑定

在Android中定义RelativeLayout的Z视图顺序

在Android中定义RelativeLayout的Z视图顺序

MMTTMM 2019-08-31 15:25:59
我想在Android中定义RelativeLayout视图的z顺序。我知道这样做的一种方法是打电话bringToFront。有更好的方法吗?如果我可以在布局xml中定义z顺序会很棒。
查看完整描述

4 回答

?
慕桂英546537

TA贡献1848条经验 获得超10个赞

最简单的方法是简单地关注视图添加到XML文件的顺序。文件中的下降意味着在Z轴上向上。


编辑:这是记录在这里,并在这里对Android开发者网站。


查看完整回答
反对 回复 2019-08-31
?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

如果你想在代码中执行此操作,则可以执行此操作


View.bringToFront();

看文档


查看完整回答
反对 回复 2019-08-31
?
慕慕森

TA贡献1856条经验 获得超17个赞

请注意,API 21及更高版本中的按钮和其他元素具有较高的高程,因此无论父布局如何,都会忽略元素的xml顺序。我花了一段时间才想出那一个。


查看完整回答
反对 回复 2019-08-31
?
饮歌长啸

TA贡献1951条经验 获得超3个赞

在从API级别21开始的Android中,布局文件中的项目从它们在文件中的排序方式得到它们的Z顺序,如正确答案中所述,并且从它们的高程,更高的高程值意味着该项目获得更高的Z顺序。


这有时会导致问题,特别是对于经常出现在项目顶部的按钮,根据XML的顺序,这些按钮应按Z顺序排在它们之下。要解决此问题,只需设置android:elevation布局XML中的项目以匹配您要实现的Z顺序。


我在布局中设置了一个元素的高程,它将开始投射阴影。如果您不想要此效果,可以使用如下代码删除阴影:


if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {

   myView.setOutlineProvider(null);

}

我没有找到任何方法通过布局xml删除高架视图的阴影。


查看完整回答
反对 回复 2019-08-31
  • 4 回答
  • 0 关注
  • 678 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信