dracula
dracula

Reputation: 4483

android - linear layout bringToFront()

I have 4 buttons in my linear layout and i need to bring to front first button.

Normal order is

    Button 1 | Button 2 | Button 3 | Button 4

But when I call button1.bringToFront() function , button1 is going to end like

    Button 2 | Button 3 | Button 4 | Button 1

How can I solve this problem. Relative layout doesn't causes this problem but I have to use LinearLayout because buttons will order vertically and I'm deleting a button in some conditions.

Thanks

Upvotes: 8

Views: 11804

Answers (4)

brucenan
brucenan

Reputation: 584

make your layout call the forceLayout() to disable re-arrangement of the layout.

Upvotes: 0

Pablo Alfonso
Pablo Alfonso

Reputation: 2465

If you have to work with z-axis in a LinearLayout, you may use setTranslationZ function.

Example:

yourView.setTranslationZ(100);

Upvotes: 2

Ferran Maylinch
Ferran Maylinch

Reputation: 11539

Since bringToFront messes up the LinearLayout order, I decided to use a RelativeLayout and put the "top" view (the view I want on top) last in the XML.

Example:

<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>

In the specific case of this question, the ViewOnTop would be the Button 1, and the ViewBelow would be a LinearLayout containing the other buttons.

Upvotes: 0

chRyNaN
chRyNaN

Reputation: 3692

LinearLayout doesn't work with the z-axis, hence, it's name linear. Try using a RelativeLayout and then call bringToFront() to get the desired effect. With a RelativeLayout you can call layout_alignBollow to order the views vertically. Or you can nest views and layouts, for instance, within your LinearLayout nest three RelativeLayout within those you can place your Buttons (be careful with this approach as adding too many views can be a bad thing).

Upvotes: 10

Related Questions