Reputation: 4483
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
Reputation: 584
make your layout call the forceLayout()
to disable re-arrangement of the layout.
Upvotes: 0
Reputation: 2465
If you have to work with z-axis in a LinearLayout, you may use setTranslationZ function.
Example:
yourView.setTranslationZ(100);
Upvotes: 2
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
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