Android Studio 學習筆記(二):佈局簡介和xmlns說明

来源:https://www.cnblogs.com/ifever/archive/2020/02/14/12309148.html

簡單介紹了線性佈局和相對佈局,同時分析了xml文件三個固定開頭xmlns:namespace-prefix="namespaceURI" ...


初學Android Studio,是在b站看的教程視頻,這裡的筆記也是以其為基礎的,個人強烈安利:

【天哥】Android開發視頻教程最新版 Android Studio開發

Android 佈局簡介

可以把界面設計看作是,讓各個控制項都擺放得有條不紊,各得其所。佈局就相當於放置控制項的容器,通過控制佈局參數,可以按照一定規律調整內部控制項的位置。

一個豐富的Android界面由UI控制項和結構化佈局對象組成。

常見佈局可分為以下幾類:

  • 線性佈局(LinearLayout)
  • 相對佈局(RelativeLayout)
  • 表格佈局(TableLayout)
  • 網格佈局(GridLayout)
  • 幀佈局(FrameLayout)

此外,還有基本不會使用的絕對佈局(AbsoluteLayout)和採用可視化界面拖拽控制項的約束佈局(ConstraintLayout)

佈局至少需要設置的屬性為android:layout_widthandroid: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添加的屬性都會被摒棄,方便進行頁面調整

img

圖片來自——Android佈局文件中的xmlns:tools作用以及用法https://blog.csdn.net/qq_24531461/article/details/52804473

本來打算做個demo演示一下的,考慮到控制項還沒寫,放到後面的部分吧....

參考資料

  1. Google 安卓開發者指南 佈局部分

    https://developer.android.google.cn/guide/topics/ui/layout

  2. Android開發的常用佈局

    <https://zhuanlan.zhihu.com/p/87343947 >

  3. Android Studio中match_parent和wrap_content的區別https://blog.csdn.net/qq_38900441/article/details/83420480

  4. Android線性佈局和相對佈局的詳解和區別https://blog.csdn.net/weixin_40783315/article/details/83589369

  5. RelativeLayout(相對佈局)|菜鳥教程

    https://www.runoob.com/w3cnote/android-tutorial-relativelayout.html

  6. <?xml version="1.0" encoding="utf-8"?>的作用

    https://www.cnblogs.com/neil-/p/5416337.html

  7. Why this line xmlns:android="http://schemas.android.com/apk/res/android" must be the first in the layout xml file?

    http://www.it1352.com/79986.html

  8. Android佈局文件中的xmlns:tools作用以及用法https://blog.csdn.net/qq_24531461/article/details/52804473

  9. Android佈局理解之xmlns

    https://www.jianshu.com/p/accb46a12a53


  1. 匹配父佈局,也就是由父佈局來決定當前控制項的大小

  2. 包含內容,也就是由控制項內容決定當前控制項的大小

  3. 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),實際上相當於一個固定值(常量),不可訪問


您的分享是我們最大的動力!

更多相關文章
  • ASPNetCore 發佈到IIS 準備工作 1.1. 安裝IIS。(具體操作不再說明) 安裝成功後再瀏覽器輸入localhost得到的頁面如下 1.2. 安裝dotnet-hosting-2.2.2-win.exe安裝成功後在IIS 中可以看到如下兩個程式 這兩個程式對應得NetCore的版本不一 ...
  • 1.Ctrl+s:快速保存代碼 一定要記得隨時隨地用 Ctrl+s 來保存我們的代碼哦!!!不然等到電腦關機或者是使用的Eclipse突然閃退就欲哭無淚了。此時腦海裡就突然出現了嗶嗶嗶的畫面~ 2.Alt+/:自動補全代碼或者提示代碼後半部分 牆裂推薦大家使用啊,真的是超級好用了。 給大家舉一個例子 ...
  • 在看 apue 第 19 章偽終端第 6 節使用 pty 程式時,發現“檢查長時間運行程式的輸出”這一部分內容的實際運行結果,與書上所說有出入。 於是展開一番研究,最終發現是書上講的有問題,現在摘出來讓大家評評理。 先上代碼 pty.c pty_fun.c 這是書上標準的 pty 程式,簡單說起來就 ...
  • 背景介紹 我們在工作中難免會寫一些重覆性的代碼,所以需要我們具備一定的抽象能力,比如把共同的邏輯抽取到抽象類中,也可以通過一些工具類來避免冗餘代碼 今天這篇文章就是把一個調用服務的重試功能抽取出一個工具類,以備復用。這裡為了方便介紹,把調用服務簡化成方法的調用,被調用的 foo 方法如下: ~~~ ...
  • 1 SQL 的哲學 形如 Linux 哲學一切都是文件,在 SQL 領域也有這樣一條至理名言 2 關係資料庫 所謂關係資料庫(Relational database)是創建在關係模型基礎上的資料庫,藉助於集合代數等數學概念和方法來處理資料庫中的數據。 現實世界中的各種實體以及實體之間的各種聯繫均用關 ...
  • 該文為《 MySQL 實戰 45 講》的學習筆記,感謝查看,如有錯誤,歡迎指正 一、索引簡介 索引就類似書本的目錄,作用就是方便我們更加快速的查找到想要的數據。 索引的實現方式比較多,常見的有 ,`有序數組 搜索樹`。 1.1 哈希表 是將數據以 的形式存儲起來,簡單來說就是將 通過哈希函數換算成數 ...
  • 資料庫索引是資料庫系統中一個重要的概念,索引也叫做 key ,是一種用於提升資料庫查詢效率的數據結構,我們可以把索引理解成一本書的目錄,通過目錄我們可以快速找到對應章節的內容,同樣的,通過資料庫索引,我們可以快速找到數據表中對應的記錄。 ...
  • 上一章聊到 TsFile 的文件組成,以及數據塊的詳細介紹。詳情請見: 時序資料庫 Apache-IoTDB 源碼解析之文件數據塊(四) 打一波廣告,歡迎大家訪問IoTDB 倉庫,求一波 Star。 這一章主要想聊聊: TsFile索引塊的組成 索引塊的查詢過程 索引塊目前在做的改進項 索引塊 索引 ...
一周排行
  • 1. 泛型Generic 1.1 引入泛型:延遲聲明 泛型方法聲明時,並未寫死類型,在調用的時候再指定類型。 延遲聲明:推遲一切可以推遲的。 1.2 如何聲明和使用泛型 泛型方法:方法名稱後面加上尖括弧,裡面是類型參數 類型參數實際上就是一個類型T聲明,方法就可以用這個類型T了。 如下所示: pub ...
  • 本筆記摘抄自:https://www.cnblogs.com/PatrickLiu/p/7903617.html,記錄一下學習過程以備後續查用。 一、引言 今天我們要講行為型設計模式的第三個模式--迭代器模式,先從名字上來看。迭代是遍歷的意思,迭代器可以理解為是遍歷某某的工具,遍歷什麼呢?在軟 件設 ...
  • 本筆記摘抄自:https://www.cnblogs.com/PatrickLiu/p/7928521.html,記錄一下學習過程以備後續查用。 一、引言 今天我們要講行為型設計模式的第四個模式--觀察者模式,先從名字上來看。觀察者模式可以理解為既然有“觀察者”,那肯定就有“被觀察者”了。“觀察者” ...
  • 先看核心代碼: public List<DataEntity> SearchShopSalesReport(DateTimeOffset? dateFrom, DateTimeOffset? dateTo,string groupBy) { var query = data.DataEntity / ...
  • 首先新建一個項目,名稱叫Caliburn.Micro.ActionConvertions 然後刪掉MainWindow.xaml 然後去app.xaml刪掉StartupUri這行代碼 其次,安裝Caliburn.Micro,Caliburn.Micro.Core,這兩個Nuget包,如下圖 然後新 ...
  • 一文帶你瞭解 C DLR 的世界 在很久之前,我寫了一片文章 "dynamic結合匿名類型 匿名對象傳參" ,裡面我以為DLR內部是用反射實現的。因為那時候是心中想當然的認為只有反射能夠在運行時解析對象的成員信息並調用成員方法。後來也是因為其他的事一直都沒有回過頭來把這一節知識給補上,正所謂亡羊補牢 ...
  • ​ 在C#8.0中,針對介面引入了一項新特性,就是可以指定預設實現,方便對已有實現進行擴展,也對面向Android和Swift的Api進行互操作提供了可能性。下麵我們來看看該特性的具體規則與實現。 一、主要應用場景: 在不破壞影響已有實現的情況下,可以添加新成員。這解決了在第三方已經大量使用了的介面 ...
  • 前言 通常在應用程式開發到正式上線,在這個過程中我們會分為多個階段,通常會有 開發、測試、以及正式環境等。每個環境的參數配置我們會使用不同的參數,因此呢,在ASP.NET Core中就提供了相關的環境API,方便我們更好的去做這些事情。 環境 ASP.NET Core使用ASPNETCORE_ENV ...
  • 擱置了幾天,工作忙的一塌糊塗,今天終於抽空來繼續看看MVC的知識。先來看看MVC的路由是如何處理的。以下為替代的路由: app.UseEndpoints(endpoints => { endpoints.MapControllerRoute( name: "default", pattern: "{ ...
  • 多用www.bing.com國際版解決代碼報錯 代碼運行的時候,報異常,國內的搜索引擎一搜, 浮誇的廣告太多,解決方案准確性不足, 盜版又很嚴重(導致一錯皆錯),方案未及時更新等詬病。 www.bing.com國際版可以關聯到: (1). 外國官網,可以獲得官方的解決方案。 (2). stackov ...
x