AndroidUI中gravity属性的运用

本文详细解析了Android布局管理中layout_gravity与gravity属性的使用方式,包括它们如何影响控件的位置,以及在不同布局方向下它们的作用。并通过实例展示了这些属性在实际开发中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

android:layout_gravity与android:gravity:(排列方式)

第一个是,设置的控件在父控件中的位置,是相对父控件而言的。如,Button中设置android:layout_gravity="left",表示:Button控件靠近它父控件的左边界。

第二个是,设置控件内部的元素位置,即相对自身而言。如,Button中设置android:gravity="left",并且android:text="按钮控件",表示:text的值在Button的左边界处。

这两个属性有点类似html中padding和margin之间的区别。

以下摘自 http://blog.youkuaiyun.com/shakespeare001/article/details/7843460

特殊情况

当我们采用LinearLayout布局时,有以下特殊情况需要我们注意:

(1)当 android:orientation="vertical"  (垂直方向,默认)时, android:layout_gravity只有水平方向的设置才起作用,垂直方向的设置不起作用。即:left,right,center_horizontal 是生效的。

(2)当 android:orientation="horizontal"(水平方向) 时, android:layout_gravity只有垂直方向的设置才起作用,水平方向的设置不起作用。即:top,bottom,center_vertical 是生效的。


下面以一个例子说明:(本例来源于:http://blog.youkuaiyun.com/dekunchenivan/article/details/6718678


  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:orientation="vertical"  
  4.     android:layout_width="fill_parent"  
  5.     android:layout_height="fill_parent"  
  6.     >  
  7.     <TextView    
  8.         android:layout_width="100dip"   
  9.         android:layout_height="100dip"  
  10.         android:layout_gravity="bottom|center_horizontal"  
  11.         android:gravity="center|bottom"  
  12.         android:background="#00FF00"  
  13.         android:text="@string/textview"  
  14.         />  
  15.   
  16.     <Button  
  17.         android:layout_width="100dip"  
  18.         android:layout_height="100dip"  
  19.         android:layout_gravity="bottom|left"  
  20.         android:gravity="left|top"  
  21.         android:background="#FF0000"  
  22.         android:text="@string/button"  
  23.         />  
  24. </LinearLayout>  
在TextView中,我们设置了 android:layout_gravity = "bottom|center_horizontal"   ,但该TextView并没有显示在屏幕的下方正中央,表明只有center_horizontal属性起了作用,这正是因为我们使用了LinearLayout布局,并且其android:orientation="vertical",只有水平方向的设置才会起作用,其他方向则会失效。同样,Button也一样。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值