我想在Android中定义RelativeLayout的视图的z顺序。
我知道其中一个方法就是打电话给bringToFront。
有更好的方法吗?这将是伟大的,如果我可以在布局xml定义z顺序。
我想在Android中定义RelativeLayout的视图的z顺序。
我知道其中一个方法就是打电话给bringToFront。
有更好的方法吗?这将是伟大的,如果我可以在布局xml定义z顺序。
当前回答
如果你想在代码中这样做 你可以这样做
View.bringToFront();
看文档
其他回答
请注意,API 21及更高版本中的按钮和其他元素都有很高的高度,因此忽略元素的xml顺序,而不管父布局如何。我花了好长时间才想明白。
如果你想在代码中这样做 你可以这样做
View.bringToFront();
看文档
你可以使用重定义的自定义RelativeLayout
getChildDrawingOrder (int childCount, int i)
注意-这个方法将参数i作为“我应该在哪个视图中绘制i”。 这就是ViewPager的工作原理。它与PageTransformer一起设置自定义绘制顺序。
您也可以使用下面的代码示例来实现相同的效果
ViewCompat.setElevation(sourceView, ViewCompat.getElevation(mCardView)+1);
这是向后兼容的。 这里mccardview是一个应该在sourceView下面的视图。
我想我应该加上一个答案,因为介绍了
android: translationZ
XML字段稍微改变了一点。其他答案建议你跑步
childView1.bringToFront();
parentView.invalidate();
除了这段代码不会把childView1在任何视图前硬编码的android:translationZ在XML文件中。我遇到了这个问题,一旦我从其他视图中删除了这个字段,bringToFront()工作得很好。