歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android布局的相對性

Android布局的相對性

日期:2017/3/1 10:25:12   编辑:Linux編程

不常接觸Android布局的同學可能會為一個問題犯糊塗,即該屬性是相對於父容器還是相對於子元素,還是只對自己有效,下面我們根據一個例子來簡單理一下布局相對性的思路。

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="fill_parent"
  4. android:layout_height="fill_parent"
  5. android:orientation="vertical" >
  6. <!--
  7. 以下的LinearLayout 中 android:layout_gravity="center",
  8. 相對於其父容器重力方向,所以水平居中
  9. -->
  10. <LinearLayout
  11. android:id="@+id/linearLayout1"
  12. android:layout_width="200dip"
  13. android:layout_height="60dip"
  14. android:layout_gravity="center"
  15. android:background="#00ff00"
  16. android:orientation="horizontal" >
  17. <TextView
  18. android:id="@+id/textView1"
  19. android:layout_width="wrap_content"
  20. android:layout_height="wrap_content"
  21. android:layout_marginRight="2dip"
  22. android:background="#ff0000"
  23. android:text="TextA" />
  24. <TextView
  25. android:id="@+id/textView2"
  26. android:layout_width="wrap_content"
  27. android:layout_height="wrap_content"
  28. android:background="#ff0000"
  29. android:text="TextB" />
  30. </LinearLayout>
  31. <!--
  32. 以下的LinearLayout 中android:gravity="bottom"
  33. 表示該LinearLayout的子View相對於LinearLayout是居底部的
  34. -->
  35. <LinearLayout
  36. android:id="@+id/linearLayout2"
  37. android:layout_width="200dip"
  38. android:layout_height="60dip"
  39. android:layout_gravity="center"
  40. android:layout_marginTop="5dip"
  41. android:background="#ffff00"
  42. android:gravity="bottom"
  43. android:orientation="horizontal" >
  44. <TextView
  45. android:id="@+id/TextView03"
  46. android:layout_width="wrap_content"
  47. android:layout_height="wrap_content"
  48. android:layout_marginRight="2dip"
  49. android:background="#ff0000"
  50. android:text="TextA" />
  51. <TextView
  52. android:id="@+id/TextView04"
  53. android:layout_width="wrap_content"
  54. android:layout_height="wrap_content"
  55. android:background="#ff0000"
  56. android:text="TextB" />
  57. </LinearLayout>
  58. </LinearLayout>

這裡對應的效果圖貼上

該圖分別對應了布局文件中的兩個布局思路介紹

相對於父元素

相對於子元素

由此我們也來發現以下一般規律:

對於android:layout_xxx開始的屬性一般用於“自身”及“相對於父元素”,如android:layout_gravity="center",相對於父容器居中

而對於android:xxx開始的屬性則一般作用域子元素,如android:orientation="vertical",其子元素居中

當然,以上只是根據命名方式做的一般性猜測,對於有些屬性,如android:layout_marginRight,其相對於父元素或兄弟元素,android:layout_height="60dip"則只對自身有效。

更多Android相關信息見Android 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=11

Copyright © Linux教程網 All Rights Reserved