What is the difference between gravity and layout_gravity in Android?

前端 未结 20 1162
庸人自扰
庸人自扰 2020-11-21 11:41

I know we can set the following values to the android:gravity and android:layout_gravity properties:

    <
20条回答
  •  长情又很酷
    2020-11-21 12:16

    Inside - Outside

    • gravity arranges the content inside the view.
    • layout_gravity arranges the view's position outside of itself.

    Sometimes it helps to see a picture, too. The green and blue are TextViews and the other two background colors are LinearLayouts.

    Notes

    • The layout_gravity does not work for views in a RelativeLayout. Use it for views in a LinearLayout or FrameLayout. See my supplemental answer for more details.
    • The view's width (or height) has to be greater than its content. Otherwise gravity won't have any effect. Thus, wrap_content and gravity are meaningless together.
    • The view's width (or height) has to be less than the parent. Otherwise layout_gravity won't have any effect. Thus, match_parent and layout_gravity are meaningless together.
    • The layout_gravity=center looks the same as layout_gravity=center_horizontal here because they are in a vertical linear layout. You can't center vertically in this case, so layout_gravity=center only centers horizontally.
    • This answer only dealt with setting gravity and layout_gravity on the views within a layout. To see what happens when you set the gravity of the of the parent layout itself, check out the supplemental answer that I referred to above. (Summary: gravity doesn't work well on a RelativeLayout but can be useful with a LinearLayout.)

    So remember, layout_gravity arranges a view in its layout. Gravity arranges the content inside the view.

    xml

    Here is the xml for the above image for your reference:

    
    
    
        
    
            
    
            
    
            
    
            
    
            
    
        
    
        
    
            
    
            
    
            
    
            
    
            
    
        
    
    
    

    Related

    • Difference between a View's Padding and Margin
    • Match_parent vs wrap_content
    • How to set both gravity and layout gravity of a LinearLayout programatically

提交回复
热议问题