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

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

簡單介紹了線性佈局和相對佈局,同時分析了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),實際上相當於一個固定值(常量),不可訪問


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

-Advertisement-
Play Games
更多相關文章
  • 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索引塊的組成 索引塊的查詢過程 索引塊目前在做的改進項 索引塊 索引 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...