android - linear layout bringToFront()

前端 未结 4 600
走了就别回头了
走了就别回头了 2021-01-12 04:23

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


        
相关标签:
4条回答
  • 2021-01-12 05:06

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

    Example:

    yourView.setTranslationZ(100);
    
    0 讨论(0)
  • 2021-01-12 05:12

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

    0 讨论(0)
  • 2021-01-12 05:16

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

    0 讨论(0)
  • 2021-01-12 05:17

    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.

    0 讨论(0)
提交回复
热议问题