android開發(fā)課件講義:ActionBar_第1頁
android開發(fā)課件講義:ActionBar_第2頁
android開發(fā)課件講義:ActionBar_第3頁
android開發(fā)課件講義:ActionBar_第4頁
android開發(fā)課件講義:ActionBar_第5頁
已閱讀5頁,還剩48頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

Android--ActionbarActionBar簡介使用ActionBar中的UP按鈕在ActionBar中添加ActionView在ActionBar中添加導(dǎo)航Tab式導(dǎo)航下拉框式導(dǎo)航Fragment介紹Fragment和Activity的交互ActionBar簡介在ActionBar中添加ActionView在ActionBar中添加導(dǎo)航Tab式導(dǎo)航下拉框式導(dǎo)航Fragment介紹Fragment和Activity的交互ActionBar簡介ActionBar可以帶給用戶明確的動作提示和全局導(dǎo)航在需要在界面上明確提示用戶動作的情況下在需要進行全局導(dǎo)航的情況下統(tǒng)一顯示界面重要功能,比如:搜索、新建、分項等功能出現(xiàn)在顯著位置便于使用。在系統(tǒng)中,很多都采用了ActionBarActionBar中的功能布局對于大多數(shù)應(yīng)用,操作欄可以分割為4個不同的功能區(qū)域。(1)應(yīng)用程序圖標(biāo)。注意:如果當(dāng)時應(yīng)用不再頂層界面,那么在圖標(biāo)左邊放置一個向左的箭頭,表示“向上”按鈕,使用戶可以回到上一級界面。(2)如果您的應(yīng)用通過多個不同的視圖顯示數(shù)據(jù),這個區(qū)域?qū)⒃试S用戶切換視圖??梢允褂孟吕藛位蛘邩?biāo)簽控件來實現(xiàn)。(3)顯示您應(yīng)用中最重的操作。如果圖標(biāo)放不下了,就自動移入“其它操作”菜單。(4)將較少被用到的操作放在這個菜單里。下拉框式ActionBarTab頁式ActionBar我們可以通過代碼來看看什么是ActionBar。在setContentView函數(shù)下面添加如下代碼,用于隱藏ActionBar:然后運行。比較下隱藏了ActionBar和沒有隱藏的,有什么區(qū)別,并注意下有些控件可能會重新布局(太大的可能會被壓縮)。ActionBar被隱藏ActionBar版本要求從Android3.0(API級別11)開始,ActionBar包括在所有Activity中使用的Theme.Holo主題(或是繼承Activity的一個子類)。要想使用ActionBar,你的android必須高于3.0版本。保證AndroidManifest.xml中最低版本是11。ActionBar簡介在ActionBar中添加ActionView在ActionBar中添加導(dǎo)航Tab式導(dǎo)航下拉框式導(dǎo)航Fragment介紹Fragment和Activity的交互在ActionBar中添加ActionView我們可以在ActionBar中添加各種控件,比如常見的搜索按鈕、圖片等等。OptionsMenu會顯示在ActionBar,所以我們可以在選項菜單中添加ActionView。如下所示,我們通過在res->menu->main.xml中添加一個item,使得ActionBar中多了一個搜索框,效果如下Main.xml文件SearchView的響應(yīng)可以為SearchView設(shè)置監(jiān)聽,onQueryTextChange在輸入文字框修改時被觸發(fā),onQueryTextSubmit在提交搜索時被觸發(fā)。ActionBar簡介在ActionBar中添加ActionView在ActionBar中添加導(dǎo)航Tab式導(dǎo)航下拉框式導(dǎo)航Fragment介紹Fragment和Activity的交互在ActionBar中添加Tab頁導(dǎo)航主要分為四步將ActionBar的導(dǎo)航模式設(shè)置為Tab頁導(dǎo)航模式。利用ActionBar.Tab類,建立多個Tab頁面為每個Tab頁面加載Fragment頁面內(nèi)容添加Tab頁的監(jiān)聽響應(yīng)函數(shù)。Tab頁導(dǎo)航1.設(shè)置ActionBar導(dǎo)航模式ActionBar的setNavigationMode()函數(shù)可以用于設(shè)置ActionBar的導(dǎo)航模式,該函數(shù)參數(shù):ActionBar.NAVIGATION_MODE_TABS表示導(dǎo)航模式ActionBar.NAVIGATION_MODE_LIST表示下拉框模式2.建立Tab頁面建立Tab頁面比較簡單,主要有以下幾個步驟利用ActionBar.newTab()創(chuàng)建Tab對象利用Tab對象的setText設(shè)置Tab頁的文字利用ActionBar.addTab()函數(shù)將Tab頁面添加到ActionBar上面。3.建立Fragment頁面內(nèi)容建立各個Tab頁面。這一步相對比較復(fù)雜,需要建立幾個Fragment類的子類。有幾個Tab頁面就建幾個Fragment類的子類,同時建立該子類的UI的xml文件??梢酝ㄟ^項目右鍵->new->other->androidobject,選擇blankfragment進行創(chuàng)建,F(xiàn)ragment頁面每個Tab頁面對應(yīng)一個Fragment其中的一個Fragment類例子我們需要實現(xiàn)Fragment類中最重要的兩個函數(shù)onCreateView函數(shù)將加載相應(yīng)的layout界面。onViewCreated()函數(shù)用于處理界面上的各種響應(yīng)。這些響應(yīng)和我們之前學(xué)的在MainActivity的OnCreate函數(shù)中的響應(yīng)是一樣的。在這一階段,我們可以把Fragment看成是一個嵌入式的Activity。4.添加Tab頁響應(yīng)函數(shù)創(chuàng)建Fragment后,需要設(shè)置響應(yīng)函數(shù)。我們通過實現(xiàn)ActionBar.Tab.setTabListener類來實現(xiàn)Tab類的操作響應(yīng)。該類最重要的是onTabSelected類,用于單擊Tab頁時加載不同的Fragment。以下例子公有三個Fragment,對應(yīng)三個Tab頁面。MytabListener類的定義和實現(xiàn)更方便的方式在ActionBar中添加下拉框?qū)Ш匠松厦娴腡ab頁面式的導(dǎo)航或者過濾,我們還可以采用下拉式的導(dǎo)航或者過濾。步驟如下:創(chuàng)建一個SpinnerAdappter設(shè)置ActionBar的導(dǎo)航模式為LIST利用setListNavigationCallbacks函數(shù),為ActionBar添加Spinner式下拉框,并為該下拉框的選擇設(shè)置響應(yīng)函數(shù)。效果如下,在ActionBar中出現(xiàn)了一個下拉框:ActionBar簡介在ActionBar中添加ActionView在ActionBar中添加導(dǎo)航Tab式導(dǎo)航下拉框式導(dǎo)航Fragment介紹Fragment和Activity的交互Fragment介紹Fragment是android3.0(apilevel11)后引入的,可以看成是嵌在Activity中的一部分或者全部??梢园袴ragment設(shè)計成可以在多個Activity中復(fù)用的模塊。當(dāng)開發(fā)的應(yīng)用程序同時適用于平板電腦和手機時,可以利用Fragment實現(xiàn)靈活的布局,改善用戶體驗。由于和Activity非常像,其生命周期也隨著它“附著”的Activity。因此代碼看起來也很像,也有onCreate,onPause,onStop等方法。Fragment生命周期因為Fragment必須嵌入在Acitivity中使用,所以Fragment的生命周期和它所在的Activity是密切相關(guān)的。如果Activity是暫停狀態(tài),其中所有的Fragment都是暫停狀態(tài);如果Activity是stopped狀態(tài),這個Activity中所有的Fragment都不能被啟動;如果Activity被銷毀,那么它其中的所有Fragment都會被銷毀。如果Activity執(zhí)行onPause()方法的時候,它里面的每個Fragment也會執(zhí)行onPause()。但是,當(dāng)Activity在活動狀態(tài),可以獨立控制Fragment的狀態(tài),比如加上或者移除Fragment。當(dāng)這樣進行fragmenttransaction(轉(zhuǎn)換)的時候,可以把fragment放入Activity的backstack中,這樣用戶就可以進行返回操作。生命周期如下圖所示。值得注意的是:OnCreateView可能會在當(dāng)返回活動狀態(tài)時被執(zhí)行多次,但是onAttach事件則只會執(zhí)行一次。所以有些初始化工作可以放在該函數(shù)中。Fragment有一些額外的生命周期,用來處理和Activity的交互,從而可以執(zhí)行形如創(chuàng)建和銷毀FragmentUI的事情.這些額外的回調(diào)方法有:使用Fragment當(dāng)向activity中添加一個Fragment時,它須置于ViewGroup控件中,并且需定義Fragment自己的界面。和其它所有控件一樣,有兩種添加方式:在layout.xml布局文件中聲明Fragment,元素為:<fragment>。注意首字母是小寫的f??梢栽诖a中創(chuàng)建Fragment,然后把它加入到ViewGroup控件中1創(chuàng)建Fragment新增一個androidobject,選擇newblankfragment(除了普通的Fragment,還有幾個特殊的Fragment,包括DialogFragment、ListFragment、PreferenceFragment。),然后如下圖進行選擇和Fragment一起創(chuàng)建的,還有l(wèi)ayout對應(yīng)的xml文件新成立的Fragment類,實現(xiàn)了onCreateView()函數(shù),其中container參數(shù)代表該Fragment在Activity中的父控件。而inflate函數(shù)中有三個參數(shù)第一個是resourceID,指明了當(dāng)前的Fragment對應(yīng)的資源文件;第二個參數(shù)是父容器控件;第三個布爾值參數(shù)表明是否連接該布局和其父容器控件,在這里的情況設(shè)置為false,因為系統(tǒng)已經(jīng)插入了這個布局到父控件,設(shè)置為true將會產(chǎn)生多余的一個ViewGroup。2在主Activity中指定容器要動態(tài)加載該Fragment非常簡單,只需要指定加入這個Fragment的父ViewGroup即可。因此,我們需要在加載該Fragment的Activity中指定一個空的容器。要注意的是:Fragment類可能來自android.support.v4.app.Fragment,也可能來自android.app.Fragment。前者可兼容android1.6以上的版本,而后者最低需要APIlevel11,android3.0以上??醋约旱男枰?,兩個Fragment有一些細微的使用差別。用FrameLayout定義的一個容器3在Fragment中增加控件和在Activity中對應(yīng)的activity_main.xml中增加控件一樣,我們也可以在剛剛新增的Fragment類對應(yīng)的layout文件中增加控件。3加載Fragment當(dāng)Activity處于Running狀態(tài)下的時候,可以在Activity的布局中動態(tài)地加入Fragment,只需要指定加入這個Fragment的父ViewGroup即可。為此,需要一個FragmentTransaction實例。以下代碼展示了點擊一個按鈕后加載一個Fragment。加載一個Fragment類到指定id的容器內(nèi)加載前后的UI使用DialogFragment除了基本的Fragment,還有DialogFrag

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論