8

我的线性布局中有 4 个按钮,我需要将第一个按钮放在前面。

正常顺序是

    Button 1 | Button 2 | Button 3 | Button 4

但是当我调用button1.bringToFront()函数时,button1会像

    Button 2 | Button 3 | Button 4 | Button 1

我怎么解决这个问题。相对布局不会导致此问题,但我必须使用LinearLayout,因为按钮将垂直排序,并且在某些情况下我正在删除按钮。

谢谢

4

4 回答 4

10

LinearLayout不适用于 z 轴,因此,它是 name linear。尝试使用 aRelativeLayout然后调用bringToFront()以获得所需的效果。使用 aRelativeLayout您可以调用layout_alignBollow以垂直排列视图。或者您可以嵌套视图和布局,例如,在您可以放置​​的LinearLayout嵌套中的三个嵌套中(小心使用这种方法,因为添加太多视图可能是一件坏事)。 RelativeLayoutButtons

于 2013-05-23T16:41:43.687 回答
1

如果您必须在 LinearLayout 中使用 z 轴,您可以使用 setTranslationZ 函数。

例子:

yourView.setTranslationZ(100);
于 2018-01-29T00:41:22.277 回答
0

使您的布局调用forceLayout()禁用布局的重新排列。

于 2014-01-19T06:32:56.670 回答
0

由于bringToFront打乱了LinearLayout顺序,我决定使用 aRelativeLayout并将“顶部”视图(我想要的视图)放在 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包含其他按钮的 a。

于 2015-07-10T12:26:48.637 回答