您的位置:首页 > 产品设计 > UI/UE

AndroidUI中gravity属性的运用

2015-11-12 16:42 477 查看
android:layout_gravity与android:gravity:(排列方式)

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

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

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

以下摘自 http://blog.csdn.net/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.csdn.net/dekunchenivan/article/details/6718678

<?xml version="1.0" encoding="utf-8"?>  

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  

    android:orientation="vertical"  

    android:layout_width="fill_parent"  

    android:layout_height="fill_parent"  

    >  

    <TextView    

        android:layout_width="100dip"   

        android:layout_height="100dip"  

        android:layout_gravity="bottom|center_horizontal"  

        android:gravity="center|bottom"  

        android:background="#00FF00"  

        android:text="@string/textview"  

        />  

  

    <Button  

        android:layout_width="100dip"  

        android:layout_height="100dip"  

        android:layout_gravity="bottom|left"  

        android:gravity="left|top"  

        android:background="#FF0000"  

        android:text="@string/button"  

        />  

</LinearLayout>  
在TextView中,我们设置了android:layout_gravity="bottom|center_horizontal" 
,但该TextView并没有显示在屏幕的下方正中央,表明只有center_horizontal属性起了作用,这正是因为我们使用了LinearLayout布局,并且其android:orientation="vertical",只有水平方向的设置才会起作用,其他方向则会失效。同样,Button也一样。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: