本文轉(zhuǎn)載自:https://www.runoob.com/w3cnote/android-tutorial-view-viewgroup-intro.html
卓安特保|山東卓安|聯(lián)網(wǎng)報警|濟南監(jiān)控安裝|15562629707|13361029977|李田軍
本節(jié)引言
Android中的UI(User Interface)組件的詳解, 而本節(jié)我們要學(xué)習(xí)的是所有控件的父類View和ViewGroup類!突發(fā)奇想,直接翻譯官方文檔對 這兩個東西的介紹吧,對了,天朝原因,google上不去,Android developer上不去,我們可以 改hosts或者用科學(xué)上網(wǎng),當(dāng)然也可以像筆者一樣使用國內(nèi)的API鏡像,這里分享個吧: http://androiddoc.qiniudn.com/guide/topics/ui/overview.html 這個鏡像是5.0的API!
UI Overview
在Android APP中,所有的用戶界面元素都是由View和ViewGroup的對象構(gòu)成的。View是繪制在屏幕上的用戶能與之交互的一個對象。而ViewGroup則是一個用于存放其他View(和ViewGroup)對象的布局容器! Android為我們提供了一個View和ViewGroup子類的集合,集合中提供了一些常用的輸入控件(比如按鈕和文本域)和各種各樣的布局模式(比如線性或相對布局)
User Interface Layout
你的APP的用戶界面上的每一個組件都是使用View和ViewGroup對象的層次結(jié)構(gòu)來構(gòu)成的,比如 圖 1。每個ViewGroup都是要給看不見的用于組織子View的容器,而它的子View可能是輸入控件或者在UI上繪制了某塊區(qū)域的小部件。有了層次樹,你就可以根據(jù)自己的需要,設(shè)計簡單或者復(fù)雜的布局了(布局越簡單性能越好)

圖 1.一個UI布局的層次結(jié)構(gòu)的插圖
定義你的布局,你可以在代碼中實例化View對象并且開始構(gòu)建你的樹,但最容易和最高效的方式來定義你的布局則是使用一個XML文件,用XML來構(gòu)成布局更加符合人的閱讀習(xí)慣,而XML類似與HTML, 使用XML元素的名稱代表一個View。所以< TextView >元素會在你的界面中創(chuàng)建一個TextView控件,而一個< LinearLayout >則會創(chuàng)建一個LinearLayout的容器! 舉個例子,一個簡單簡單的垂直布局上面有一個文本視圖和一個按鈕,就像下面這樣:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="I am a TextView" />
<Button android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="I am a Button" />
</LinearLayout>
當(dāng)你的App加載上述的布局資源的時候,Android會將布局中的每個節(jié)點進行實例化成一個個對象,然后你可以為這些定義一些額外的行為,查詢對象的狀態(tài),或者修改布局。 完整創(chuàng)建UI布局的引導(dǎo),請參考XML Layouts
User Interface Components
你無需全部用View和ViewGroup對象來創(chuàng)建你的UI布局。Android給我們提供了一些app控件,標(biāo)準(zhǔn)的UI布局,你只需要定義內(nèi)容。這些UI組件都有其屬性介紹的API文檔,比如操作欄,對話框和狀態(tài)通知欄等。
本節(jié)小結(jié)
好吧,翻譯可能比較拗口,哎,英語盲盡力了,簡單歸納下上述內(nèi)容:
Android里的圖形界面都是由View和ViewGroup以及他們的子類構(gòu)成的: View:所有可視化控件的父類,提供組件描繪和時間處理方法 ViewGroup: View類的子類,可以擁有子控件,可以看作是容器 Android UI中的控件都是按照這種層次樹的結(jié)構(gòu)堆疊得,而創(chuàng)建UI布局的方式有兩種, 自己在Java里寫代碼或者通過XML定義布局,后者顯得更加方便和容易理解! 也是我們最常用的手段!另外我們一般很少直接用View和ViewGroup來寫布局,更多的 時候使用它們的子類控件或容器來構(gòu)建布局!
恩呢,對View和ViewGroup有個大概了解即可,平時我們是不會直接用的,一般是自定義View的時候 才會使用這兩個東西!