第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

全部開發(fā)者教程

Android 入門教程

菜單類控件
菜單:Menu
并發(fā)編程
多線程

Android 的 UI 根基 View與View

好了,到這里要恭喜你正式進入 Android 基礎(chǔ)的學(xué)習(xí),在后面的章節(jié)會陸續(xù)出現(xiàn)很多 Android 原生 API,在學(xué)習(xí)之前向大家推薦 Google 官方文檔,里面有很全的 API 功能描述、使用說明及使用示例。當(dāng)然,如果英文原版大家上不去,可以訪問中文站點:Google官方中文文檔,英語盲不要高興的太早,說是中文文檔,但其實內(nèi)容幾乎都是直接 copy 的英文。不過還是建議大家在學(xué)習(xí)過程中多多查閱官方文檔。

基礎(chǔ)知識將從 Android UI(User Interface)開始,因為 UI 是用戶最直接感知到的,也是一個應(yīng)用展示強大功能的窗口。那么學(xué)習(xí) UI,就不得不先提到 View 和 ViewGroup,它倆是 Android 一切 UI 的根基,所以的窗口布局都依賴它們完成,讓我們一起看看 View 和 Viewgroup 是何許人也。

1. View 和 ViewGroup 的基本概念

1.1 View

首先看看官方的解釋,這是 View 的 API 官方文檔:View官方文檔
簡單給大家翻譯一下:

窗口中的所有 View(視圖)都排列在一個樹形結(jié)構(gòu)中。我們可以通過代碼也可以用一個或多個 XML 布局文件來確定一個視圖樹。視圖有許多具體的子類,它們作為控件可以用來顯示文本、圖像或其他內(nèi)容。

由此可以得出幾個信息:

  • Android 的 UI 是樹形結(jié)構(gòu)(視圖樹和前端的 DOM Tree 類似)
  • 有兩種方法完成 UI 的編寫
    • 直接使用代碼
    • 用 XML 文件
  • 所有看到的 UI 控件都是 View 或者 View 的子類
  • View 可以用來展示多種形式的內(nèi)容

1.2 ViewGroup

ViewGroup(視圖組合)是可以包含其他 View(稱為子 View)的特殊 View。ViewGroup 是 Layouts 和視圖容器的基類,該類還定義了 ViewGroup.LayoutParams 類,該類也是 layouts 參數(shù)的基類。

由此可得出 3 個信息:

  • ViewGroup 派生自 View,是 View 的子類
  • ViewGroup 中可以包含其他的 View 或 ViewGroup,而 View 不行
  • ViewGroup 中定義了 LayoutParams,用來設(shè)置布局的參數(shù)

2. 結(jié)構(gòu)關(guān)系

如本節(jié)標(biāo)題所言,Android 系統(tǒng)中的所有 UI 類都是建立在 View 和 ViewGroup 兩個類的基礎(chǔ)之上的,所有 View 的子類稱為 Widget(控件),所有 ViewGroup 的子類稱為 Layout(布局),在 Android 源碼中繼承關(guān)系如下圖所示:

繼承關(guān)系

可以看到,在 Android 的 UI 中,View 是所有類的基類,我們通過實現(xiàn) View 來完成各種具體的UI展示;而由 View 派生的 ViewGroup 是所有 Layout 的基類,它將各種不同的 View 組合到一起,以下是 View 的組合關(guān)系圖:

組合關(guān)系

3. 兩者的功能分工

其實通過兩者的結(jié)構(gòu)關(guān)系也能分析出兩者各自的功能:

View 是所有 UI 組件的基類,基本上所有的高級 UI 組件都是繼承 View 類實現(xiàn)的,如 TextView(文本框)、Button、List、EditText(編輯框)、Checkbox 等。一個 View 在屏幕占據(jù)一塊區(qū)域,負(fù)責(zé)渲染這塊矩形區(qū)域,也可以處理這塊矩形區(qū)域發(fā)生的事件,并可以設(shè)置該區(qū)域是否可見以及獲取焦點等。

ViewGroup 是容納這些組件的容器,其本身也是從 View 中派生出來的,功能就是裝載和管理下一層的 View 對象或 ViewGroup 對象,也就是說它是一個容納其他元素的容器,負(fù)責(zé)對添加進來的 View 和 ViewGroup 進行管理和布局。

4. 小結(jié)

本節(jié)介紹了 Android UI 中作為鼻祖的兩個類,所有可視的 UI 控件都是從 View 繼承而來,而這些 View 的排列布局方式則有 ViewGroup 來組合管理,而編寫布局可以通過代碼或者 XML 的兩種形式,后者更加簡潔直觀。

其實大家在實際的開發(fā)中,很少會去直接使用這兩個類, Android 源碼已經(jīng)為我們提供了各式各樣豐富的控件和布局,幾乎可以應(yīng)對我們?nèi)粘i_發(fā)的大多數(shù)場景,在后面的課程我們會學(xué)習(xí)到很多 Android 提供的優(yōu)秀的控件和布局類,大家務(wù)必要在教程中學(xué)好 Android 原生的控件、布局,為今后學(xué)習(xí)編寫自定義 View 打下堅實的基礎(chǔ)。