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