官术网_书友最值得收藏!

4.1 View和ViewGroup

Activity是Android應(yīng)用程序與用戶交互的接口,每一個屏幕視圖都對應(yīng)一個Activity。其實Activity本身無法顯示在屏幕上,其更像一個用于裝載可顯示組件的容器。這就好比一個JSP頁面,它本身并沒有顯示出來任何東西,負(fù)責(zé)顯示的是JSP頁面內(nèi)的各種HTML標(biāo)簽,而JSP頁面好比一個容器,負(fù)責(zé)將這些表情裝載到頁面內(nèi)。那么在Android應(yīng)用程序里誰才是真正負(fù)責(zé)顯示的那部分呢?答案是View和ViewGroup,其中ViewGroup是View的子類。

Android UI界面是通過View(視圖)和ViewGroup及其派生類組合而成的。其中View是所有UI組件的基類,基本上所有的高級UI組件都是繼承View類實現(xiàn),如TextView(文本框)、Button、List、EditText(編輯框)、Checkbox等。一個View在屏幕占據(jù)一塊矩形區(qū)域,他負(fù)責(zé)渲染這塊矩形區(qū)域,也可以處理這塊矩形區(qū)域發(fā)生的事件,并可以設(shè)置該區(qū)域是否可見以及獲取焦點等;而ViewGroup是容納這些組件的容器,其本身也是從View中派生出來的,它繼承于Android.view.View,它的功能就是裝載和管理下一層的View對象或ViewGroup對象,也就是說它是一個容納其他元素的容器,負(fù)責(zé)對添加進來的View和ViewGroup進行管理和布局。View和ViewGroup的關(guān)系如圖4.1所示。

圖4.1 View和ViewGroup的關(guān)系圖

從上圖可以看到,ViewGroup可以包含一個或任意幾個View(視圖),也可以包含作為更低層次的子ViewGroup,而子ViewGroup又可以包含下一層的葉子節(jié)點的View和ViewGroup。這種靈活的層次關(guān)系可以形成復(fù)雜的UI布局。在開發(fā)過程中形成的用戶界面UI一般是來自于View和ViewGroup類的直接子類或者間接子類。

例如,View派生出的直接子類有:AnalogClock, ImageView, KeyboardView, ProgressBar, Space, SurfaceView, TextView, TextureView, ViewGroup, ViewStub等。ViewGroup派生出的直接子類有:AbsoluteLayout, FragmentBreadCrumbs, FrameLayout, GridLayout, LinearLayout, RelativeLayout, SlidingDrawer等。本章不能對View和ViewGroup的所有子類都進行詳細(xì)的介紹,只能簡單介紹其中常用的一小部分。如果需要了解各UI組件的相關(guān)信息,請參考相關(guān)文檔。

主站蜘蛛池模板: 红原县| 台南市| 乌鲁木齐市| 蕲春县| 汾阳市| 六安市| 阿勒泰市| 泾源县| 南投市| 荣昌县| 南涧| 苏尼特左旗| 岑巩县| 佛冈县| 平顶山市| 嵊泗县| 平山县| 德庆县| 噶尔县| 丰都县| 鸡泽县| 绥宁县| 昌江| 衡山县| 大同市| 龙门县| 浦北县| 乐亭县| 南丹县| 雅江县| 汉寿县| 平江县| 察隅县| 武汉市| 莎车县| 屏东县| 和林格尔县| 安阳县| 乐安县| 齐河县| 德保县|