我的线性布局中有4个按钮,我需要将第一个按钮带到前面。
正常顺序是
Button 1 | Button 2 | Button 3 | Button 4
但是当我调用button1.bringToFront()函数时,button1将结束如
Button 2 | Button 3 | Button 4 | Button 1
我该如何解决这个问题。相对布局不会导致此问题,但我必须使用LinearLayout,因为按钮将垂直排序,我在某些条件下删除按钮。
由于
答案 0 :(得分:7)
LinearLayout
不适用于z轴,因此,它的名称为linear
。尝试使用RelativeLayout
然后调用bringToFront()
以获得所需的效果。使用RelativeLayout
,您可以致电layout_alignBollow
垂直订购视图。或者,您可以在LinearLayout
嵌套RelativeLayout
内Buttons
嵌套视图和布局(请注意这种方法,因为添加太多视图可能是坏事)。
答案 1 :(得分:1)
由于bringToFront
混淆了LinearLayout
订单,我决定使用RelativeLayout
并将"顶部"视图(我希望在顶部的视图)最后在XML中。
示例:
<RelativeLayout ...>
<ViewBelow
android:layout_below="@+id/view_on_top"
...
/>
<!-- Last view in XML appears above other views on screen -->
<ViewOnTop
android:id="@+id/view_on_top"
...
/>
</RelativeLayout>
在此问题的特定情况下,ViewOnTop
将是按钮1,ViewBelow
将是包含其他按钮的LinearLayout
。
答案 2 :(得分:1)
如果必须在LinearLayout中使用z轴,则可以使用setTranslationZ函数。
示例:
yourView.setTranslationZ(100);
答案 3 :(得分:0)
让您的布局调用forceLayout()以禁用重新排列布局。