假設您希望使用操作(zuò)欄标簽頁作(zuò)為(wèi)應用中的頂層導航的主要(yào)形式。很(hěn)遺憾,ActionBar API 僅适用于 Android 3.0 或更高版本(API 級别 11 及更高級别)。因此,如(rú)果您希望将應用分發到搭載更低(dī)版本平台的設備,則需要(yào)提供支持較新 API 的實現,同時(shí)提供使用較舊(jiù) API 的回退機制。
在本課程中,您會構建一(yī)個标簽頁式界面組件,該組件使用具有版本特定實現的抽象類以提供向後兼容性。本節課介紹如(rú)何為(wèi)新标簽頁 API 創建抽象層,這(zhè)是構建标簽頁組件的第一(yī)步。
為(wèi)抽象化做(zuò)準備
Java 編程語言中的抽象化涉及創建一(yī)個或多個接口或抽象類以隐藏實現細節。對于新的 Android API,您可(kě)以使用抽象化來構建版本感知組件,以在新設備上(shàng)使用新的 API,而在舊(jiù)設備上(shàng)回退到更兼容的舊(jiù) API。
使用此方法時(shí),首先要(yào)确定要(yào)以向後兼容的方式使用哪些新類,然後根據新類的公共接口創建抽象類。在定義抽象接口時(shí),應盡可(kě)能(néng)鏡像新 API。這(zhè)可(kě)以最大限度地(dì)提高向前兼容性,并且在未來不再需要(yào)抽象層時(shí),也更容易将其丢棄。
在為(wèi)這(zhè)些新 API 創建抽象類之後,可(kě)以在運行(xíng)時(shí)創建和(hé)選擇任意數(shù)量的實現。為(wèi)了(le)确保向後兼容性,這(zhè)些實現可(kě)能(néng)會因所需的 API 級别而異。因此,一(yī)種實現可(kě)能(néng)使用最近發布的 API,而其他(tā)實現可(kě)能(néng)使用舊(jiù) API。
創建抽象标簽頁接口
要(yào)創建标簽頁的向後兼容版本,應首先确定您的應用需要(yào)哪些功能(néng)和(hé)特定的 API。對于頂部的标簽頁,假設您具有以下(xià)功能(néng)要(yào)求:
标簽頁标識應顯示文本和(hé)圖标。
标簽頁可(kě)以與 fragment 實例關聯。
Activity 應該能(néng)夠監聽标簽頁更改。
提前準備好這(zhè)些要(yào)求可(kě)讓您控制抽象層的範圍。這(zhè)意味着您可(kě)以花更少(shǎo)的時(shí)間(jiān)創建抽象層的多個實現,并更快(kuài)開(kāi)始使用新的向後兼容實現。
标簽頁的主要(yào) API 位于 ActionBar 和(hé) ActionBar.Tab 中。這(zhè)些是為(wèi)了(le)使标簽頁能(néng)夠感知版本而抽象化的 API。此示例項目的要(yào)求是向後兼容 Eclair(API 級别 5),同時(shí)充分利用 Honeycomb(API 級别 11)中的新标簽頁功能(néng)。
網站建設開(kāi)發|APP設計開(kāi)發|小程序建設開(kāi)發