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

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