Android布局的相对性
不常接触Android布局的同学可能会为一个问题犯糊涂,即该属性是相对于父容器还是相对于子元素,还是只对自己有效,下面我们根据一个例子来简单理一下布局相对性的思路。
- <?xml version="1.0" encoding="utf-8"?>
 - <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 - android:layout_width="fill_parent"
 - android:layout_height="fill_parent"
 - android:orientation="vertical" >
 - <!--
 - 以下的LinearLayout 中 android:layout_gravity="center",
 - 相对于其父容器重力方向,所以水平居中
 - -->
 - <LinearLayout
 - android:id="@+id/linearLayout1"
 - android:layout_width="200dip"
 - android:layout_height="60dip"
 - android:layout_gravity="center"
 - android:background="#00ff00"
 - android:orientation="horizontal" >
 - <TextView
 - android:id="@+id/textView1"
 - android:layout_width="wrap_content"
 - android:layout_height="wrap_content"
 - android:layout_marginRight="2dip"
 - android:background="#ff0000"
 - android:text="TextA" />
 - <TextView
 - android:id="@+id/textView2"
 - android:layout_width="wrap_content"
 - android:layout_height="wrap_content"
 - android:background="#ff0000"
 - android:text="TextB" />
 - </LinearLayout>
 - <!--
 - 以下的LinearLayout 中android:gravity="bottom"
 - 表示该LinearLayout的子View相对于LinearLayout是居底部的
 - -->
 - <LinearLayout
 - android:id="@+id/linearLayout2"
 - android:layout_width="200dip"
 - android:layout_height="60dip"
 - android:layout_gravity="center"
 - android:layout_marginTop="5dip"
 - android:background="#ffff00"
 - android:gravity="bottom"
 - android:orientation="horizontal" >
 - <TextView
 - android:id="@+id/TextView03"
 - android:layout_width="wrap_content"
 - android:layout_height="wrap_content"
 - android:layout_marginRight="2dip"
 - android:background="#ff0000"
 - android:text="TextA" />
 - <TextView
 - android:id="@+id/TextView04"
 - android:layout_width="wrap_content"
 - android:layout_height="wrap_content"
 - android:background="#ff0000"
 - android:text="TextB" />
 -     </LinearLayout> 
 - </LinearLayout>
 
这里对应的效果图贴上

该图分别对应了布局文件中的两个布局思路介绍
相对于父元素
相对于子元素
由此我们也来发现以下一般规律:
对于android:layout_xxx开始的属性一般用于“自身”及“相对于父元素”,如android:layout_gravity="center",相对于父容器居中
而对于android:xxx开始的属性则一般作用域子元素,如android:orientation="vertical",其子元素居中
当然,以上只是根据命名方式做的一般性猜测,对于有些属性,如android:layout_marginRight,其相对于父元素或兄弟元素,android:layout_height="60dip"则只对自身有效。
相关推荐
  hqulyc    2020-02-21  
   fengyeezju    2020-02-02  
   fengyeezju    2020-02-02  
   安辉    2020-01-30  
   pengjin    2020-01-28  
   安辉    2020-01-25  
   fengyeezju    2020-01-11  
   csdnuuu    2020-01-04  
 相对布局只要是要有参照物,即谁在谁下方,谁在谁左边,和谁左对齐,等等。然后再添加一个按钮使其在textView的下方以及在立即更新按钮的左边。android:text="发现新的版本,您想现在更新吗?
  magic00    2020-01-04  
   安辉    2013-07-14  
   冰川孤辰    2013-07-12  
   Tom天天    2013-07-12  
   WangWY    2013-07-03  
   Lzn0    2013-09-05  
   CrazyDavid    2013-09-03  
   tianhui    2013-08-23  
   Rgenxiao    2011-04-06  
   西木    2011-04-06