Appcompat实现Action Bar的兼容性处置

Appcompat实现Action Bar的兼容性处理Appcompat实现Action Bar时,如果使用到split action bar或者Navigati

Appcompat实现Action Bar的兼容性处理

    Appcompat实现Action Bar时,如果使用到split action bar或者Navigating Up with the App Icon需要考虑兼容性。下面介绍下split action bar和Navigating Up with the App Icon,并解决兼容性。

split action bar

      启用split action bar模式时,在屏幕的底部会显示一个独立的横条,用于显示Activity在窄屏设备(如竖屏手机)上运行时的所有操作项,效果如下图。


Appcompat实现Action Bar的兼容性处置


       要使用这种风格也非常简单,Android4.0(API 级别 14)或以上的版本上 , 在manifest文件中的activitiy节点或application节点中添加 uiOptions=“splitActionBarWhenNarrow”属性。API 级别小于 14 , 除了要添加以上属性以外,还需要在activity节点中添加如下节点: 

<meta-dataandroid:name="android.support.UI_OPTIONS"android:value="splitActionBarWhenNarrow">


示例代码如下:

[html] view plaincopy
  1. <manifest ...>  
  2.     <activity uiOptions="splitActionBarWhenNarrow" ... >  
  3.         <meta-data android:name="android.support.UI_OPTIONS"  
  4.                    android:value="splitActionBarWhenNarrow" />  
  5.     </activity>  
  6. </manifest>  

如果想实现上图最右侧的效果,即不显示标题栏和图标,可以在代码中使用如下方法:

3.1)通过manifest文件实现

    当parent Actitvity(返回到的Activity)都一样的时候,推荐使用该方法

       Android4.1(API 级别 16)或以上的版本上时,可以直接在activity节点添加parentActivityName属性。

       Android4.1(API 级别 16)以下版本,还需要添加<meta-data>节点。示例代码:

<application ... >    ...    <!-- The main/home activity (has no parent activity) -->    <activity        android:name="com.example.myfirstapp.MainActivity" ...>        ...    </activity>    <!-- A child of the main activity -->    <activity        android:name="com.example.myfirstapp.DisplayMessageActivity"        android:label="@string/title_activity_display_message"        android:parentActivityName="com.example.myfirstapp.MainActivity" >        <!-- Parent activity meta-data to support API level 7+ -->        <meta-data            android:name="android.support.PARENT_ACTIVITY"            android:value="com.example.myfirstapp.MainActivity" />    </activity></application>

这样设置以后,当你点击“<”符的时候就会返回到指定的activity。

3.2)通过代码实现

    该方法适用于多个界面可以到达同一个界面,也就是说parent activity不一样的情况。主要是重写getSupportParentActivityIntent() 和onCreateSupportNavigateUpTaskStack()方法.

更多内容可以参考下面两个链接。

http://developer.android.com/guide/topics/ui/actionbar.html

http://developer.android.com/training/implementing-navigation/ancestral.html


解决兼容性的问题已标红,请注意。


/*** @author 张兴业*  http://blog.csdn.net/xyz_lmn*  iOS入门群:83702688
*  android开发进阶群:241395671*  我的新浪微博:@张兴业TBOW*/


1楼suannai031411分钟前
您的文章已被推荐到博客首页和个人页侧边栏推荐文章,感谢您的分享。