Xml布局

1、gravity和layout_gravity的区别

  • android:gravity用于设置View中内容相对于View组件的对齐方式,比方说button上的文字相对button本身的位置;LinearLayout中组件相对于LinearLayout本身是居中还是靠右还是靠左;而android:layout_gravity用于设置View组件相对于Container(布局)的对齐方式,也就是这个组件相对于整个布局要设置的位置;简单来说,android.gravity是设置当前控件/布局上的子控件;而android.layout_gravity用于设置当前控件/布局相对于父组件/布局的显示位置;
  • 假如父布局设置了gravity,那么子组件如果再设置layout_gravity,则会使父组件设置的gravity失效
    layout_alignParentRight,当前组件与父组件右边缘对齐
    android:scaleType=”fitCenter”,用于imageView,表示图片按比例放大或缩小,并充满imageView组件

2、设置一个组件靠右对齐

方法一 使用RelativeLayout,然后需要右对齐的组件里,设置layout_alignParentRight =”true”即可实现右对齐;
此外,android:layout_centerVertical=”true”可以使当前组件垂直方向居中

方法二 使用LinearLayout,最后靠右的组件再使用一个LinearLayout包围起来,并在此LinearLayout种设置gravity=”right”,表示其子组件都是右对齐
我们可以将要右对齐的控件放在另一个LinearLayout中,同时将其对齐方式设为右对齐:android:gravity=”right”,还有一点,这个LinearLayout的宽度设为充满父控件:
android:layout_width=”fill_parent”。这样就行了。

  
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    android:layout_width="fill_parent"  
    android:layout_height="fill_parent"  
    android:background="@drawable/bg"  
    android:orientation="horizontal" >  

    <TextView  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:text="左边1" />  

    <TextView  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:text="左边2" />  
      
    <LinearLayout  
        android:layout_width="fill_parent"  
        android:layout_height="wrap_content"  
        android:gravity="right" >  

        <TextView  
            android:layout_width="wrap_content"  
            android:layout_height="wrap_content"  
            android:layout_marginRight="10dp"  
            android:text="右边" />  
    LinearLayout>  

LinearLayout>  

3、weight属性

如果要使用weight,那么则必须把width或者height设置为“0dp”,表明使用weight的另一种计算方法

4、LinearLayout

如果设置了gravity,则按照此设置了来计算子组件所占用的空间,否则直接按照从左到右,并且子组件再去设置layout_gravity也没有用了;按照自己的猜想,系统已经从左右到右把对应的空间设置好,你设置了靠右,其他空间就是那么大,所有视觉看起来也就没法再右了
5、RelativeLayout布局
一个组件,如果不能显示,有可能被其他组件盖住了;例如前面有一个listview,并且没有设定固定高度,而是match_parent;那么其后的组件有可能会被list盖住

你可能感兴趣的:(学习笔记)