Appcompat實現(xiàn)Action Bar時,如果使用到split action bar或者Navigating Up with the App Icon需要考慮兼容性,
Appcompat實現(xiàn)Action Bar的兼容性處理
。下面介紹下split action bar和Navigating Up with the App Icon,并解決兼容性。split action bar
啟用split action bar模式時,在屏幕的底部會顯示一個獨立的橫條,用于顯示Activity在窄屏設(shè)備(如豎屏手機)上運行時的所有操作項,效果如下圖。
要使用這種風格也非常簡單,Android4.0(API 級別 14)或以上的版本上 , 在manifest文件中的activitiy節(jié)點或application節(jié)點中添加 uiOptions=“splitActionBarWhenNarrow”屬性。API 級別小于 14 , 除了要添加以上屬性以外,還需要在activity節(jié)點中添加如下節(jié)點:
示例代碼如下:
[html]
android:value="splitActionBarWhenNarrow" /> 如果想實現(xiàn)上圖最右側(cè)的效果,即不顯示標題欄和圖標,可以在代碼中使用如下方法: [java] setDisplayShowHomeEnabled(false); setDisplayShowTitleEnabled(false); Navigating Up with the App Icon Navigating Up with the App Icon作為傳統(tǒng)的回退導航(一般指回退鍵,把用戶帶回任務(wù)歷史中的前一個窗口)的補充,你能夠讓action bar圖標提供向上級頁面導航的功能,它應(yīng)用把用戶帶回到你的應(yīng)用程序的上級頁面。例如,當前頁面時你的應(yīng)用程序?qū)哟伪容^深的一個頁面,觸摸應(yīng)用程序圖標應(yīng)該返回返回上一級頁面(當前頁面的父頁面)。 1)應(yīng)用場景 在界面A中有一個List,點擊其中的一個item以后,進入到界面B,這時界面B就可以添加上圖所示的Up導航功能。 2)、與按下回退鍵的區(qū)別 回退鍵是嚴格按照用戶點擊的時間順序,來進行后退顯示之前的屏幕,而Navigating Up導航功能卻和時間無關(guān),只和程序的層級關(guān)系有關(guān),也就是由你自己來決定Up點擊后到達那個界面 3)實現(xiàn)方法: 為了使appicon可點擊,并顯示出up的標志,需要調(diào)用setDisplayHomeAsUpEnabled方法。 [java] @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_details); ActionBar actionBar = getSupportActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); ... } 調(diào)用該方法以后就會顯示出下圖的返回的標志,但是點擊的時候是不會有任何效果,要起到回退導航效果,可以使用下面的兩種方式之一,電腦資料
《Appcompat實現(xiàn)Action Bar的兼容性處理》(http://www.szmdbiao.com)。
3.1)通過manifest文件實現(xiàn)
當parent Actitvity(返回到的Activity)都一樣的時候,推薦使用該方法
Android4.1(API 級別 16)或以上的版本上時,可以直接在activity節(jié)點添加parentActivityName屬性。
Android4.1(API 級別 16)以下版本,還需要添加
[html]
...
android:name="com.example.myfirstapp.MainActivity" ...>
...
android:name="com.example.myfirstapp.DisplayMessageActivity"
android:label="@string/title_activity_display_message"
android:parentActivityName="com.example.myfirstapp.MainActivity" >
android:name="android.support.PARENT_ACTIVITY" android:value="com.example.myfirstapp.MainActivity" /> 這樣設(shè)置以后,當你點擊“<”符的時候就會返回到指定的activity。 3.2)通過代碼實現(xiàn) 該方法適用于多個界面可以到達同一個界面,也就是說parent activity不一樣的情況。主要是重寫getSupportParentActivityIntent() 和onCreateSupportNavigateUpTaskStack()方法. 更多內(nèi)容可以參考下面兩個鏈接。 http://developer.android.com/guide/topics/ui/actionbar.html http://developer.android.com/training/implementing-navigation/ancestral.html 解決兼容性的問題已標紅,請注意。 /** * @author 張興業(yè) * http://blog.csdn.net/xyz_lmn * iOS入門群:83702688 * android開發(fā)進階群:241395671 * 我的 :@張興業(yè)TBOW */