簡單介紹了線性佈局和相對佈局,同時分析了xml文件三個固定開頭xmlns:namespace-prefix="namespaceURI" ...
初學Android Studio,是在b站看的教程視頻,這裡的筆記也是以其為基礎的,個人強烈安利:
【天哥】Android開發視頻教程最新版 Android Studio開發
Android 佈局簡介
可以把界面設計看作是,讓各個控制項都擺放得有條不紊,各得其所。佈局就相當於放置控制項的容器,通過控制佈局參數,可以按照一定規律調整內部控制項的位置。
一個豐富的Android界面由UI控制項和結構化佈局對象組成。
常見佈局可分為以下幾類:
- 線性佈局(LinearLayout)
- 相對佈局(RelativeLayout)
- 表格佈局(TableLayout)
- 網格佈局(GridLayout)
- 幀佈局(FrameLayout)
此外,還有基本不會使用的絕對佈局(AbsoluteLayout)和採用可視化界面拖拽控制項的約束佈局(ConstraintLayout)
佈局至少需要設置的屬性為android:layout_width和android:layout_height
分別控制佈局的寬度和高度,一般填入的參數為match_parent1和wrap_content2,如果有需要也可填入具體尺寸
下麵介紹線性佈局和相對佈局的幾個特有屬性。
線性佈局
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:命名空間唯一標識符 URI3
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),實際上相當於一個固定值(常量),不可訪問↩