初學Android Studio,是在b站看的教程視頻,這里的筆記也是以其為基礎的,個人強烈安利:
【天哥】Android開發視頻教程最新版 Android Studio開發
Android 布局簡介
可以把界面設計看作是,讓各個控件都擺放得有條不紊,各得其所。布局就相當於放置控件的容器,通過控制布局參數,可以按照一定規律調整內部控件的位置。
一個豐富的Android界面由UI控件和結構化布局對象組成。
常見布局可分為以下幾類:
- 線性布局(LinearLayout)
- 相對布局(RelativeLayout)
- 表格布局(TableLayout)
- 網格布局(GridLayout)
- 幀布局(FrameLayout)
此外,還有基本不會使用的絕對布局(AbsoluteLayout)和采用可視化界面拖拽控件的約束布局(ConstraintLayout)
布局至少需要設置的屬性為android:layout_width和android:layout_height
分別控制布局的寬度和高度,一般填入的參數為match_parent[1]和wrap_content[2],如果有需要也可填入具體尺寸
下面介紹線性布局和相對布局的幾個特有屬性。
線性布局
-
LinearLayout
用於使所有子視圖在單個方向(垂直或水平)保持對齊,方向由android:orientation決定,默認值為vertical(垂直),可改為horizontal(水平) -
若需要讓子元素使用大小不同的屏幕空間 ,可設置權重划分屬性 android:layout_weight,規則是控件先按占用設置的寬度或高度,剩余的寬度或高度按設置權重相應的比例來分配。
相對布局
-
RelativeLayout
用於以相對位置顯示子視圖。可以指定為相對於同級元素定位(例如在另一個視圖的左側或下方)或相對於父級區域定位(例如在左側、底部或中心對齊) -
margin與padding的區別:
margin代表的是偏移,針對的是容器中的組件
padding代表的則是填充,針對的是組件中的元素
-
gravity類似於Word里面的設置文字對齊方式,可以設置容器內組件的對齊方式,
線性布局比較適合所有控件都是整齊排列的頁面,加載速度較慢。
相對布局可以按照自己的想法來放置控件的位置,但寫起來比較麻煩,需要自己考慮好所有控件的的布局。
代碼說明
簡單分析下布局文件xml中的開頭:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools"
...
version="1.0":聲明用的xml版本是1.0
encoding="UTF-8":聲明用xml傳輸數據使用的字符編碼為UTF-8。(UTF-8可傳中文)
下面是三個同樣的句式,xmlns:namespace-prefix="namespaceURI"
xmlns:保留字xml namespace
的縮寫,意思是xml命名空間
namespace-prefix:命名空間前綴
namespaceURI:命名空間唯一標識符 URI[3]
xmlns:android="http://schemas.android.com/apk/res/android"
聲明這個命名空間引用自Android系統
xmlns:app="http://schemas.android.com/apk/res-auto"
導入自定義控件的一些屬性或者support支持包
xmlns:tools="http://schemas.android.com/tools"
用於調試預覽,打包為apk的時候所有tools添加的屬性都會被摒棄,方便進行頁面調整
圖片來自——Android布局文件中的xmlns:tools作用以及用法https://blog.csdn.net/qq_24531461/article/details/52804473
本來打算做個demo演示一下的,考慮到控件還沒寫,放到后面的部分吧....
參考資料
-
Google 安卓開發者指南 布局部分
-
Android開發的常用布局
-
Android Studio中match_parent和wrap_content的區別https://blog.csdn.net/qq_38900441/article/details/83420480
-
Android線性布局和相對布局的詳解和區別https://blog.csdn.net/weixin_40783315/article/details/83589369
-
RelativeLayout(相對布局)|菜鳥教程
https://www.runoob.com/w3cnote/android-tutorial-relativelayout.html
-
<?xml version="1.0" encoding="utf-8"?>的作用
-
Why this line xmlns:android="http://schemas.android.com/apk/res/android" must be the first in the layout xml file?
-
Android布局文件中的xmlns:tools作用以及用法https://blog.csdn.net/qq_24531461/article/details/52804473
-
Android布局理解之xmlns
匹配父布局,也就是由父布局來決定當前控件的大小 ↩︎
包含內容,也就是由控件內容決定當前控件的大小 ↩︎
A Uniform Resource Identifier (URI) is a string of characters which identifies an Internet Resource.The most common URI is the Uniform Resource Locator (URL) which identifies an Internet domain address. Another, not so common type of URI is the Universal Resource Name (URN).因此這里看似一個網址(URL),實際上相當於一個固定值(常量),不可訪問 ↩︎