问题背景:
1、app要使用actionbar,为了兼容低版本,使用了开源框架actionbarSherlock,activity继承SherlockActivity,即可。
2(重点)、actionbar的item在点击时有个默认背景色android:background="?android:attr/actionBarItemBackground",自己自定义了一个actionbar logo,但点击背景色不想改变,还是使用android:background="?android:attr/actionBarItemBackground",不过 我的minsdk定义是11,
<uses-sdk
android:maxSdkVersion="19"
android:minSdkVersion="11"
android:targetSdkVersion="19" />
,“?android:attr/actionBarItemBackground” 这个只能在API 14+的版本使用,低版本不支持,查找半天,找到一个方法,能指定在14+以上版本才使用android:background="?android:attr/actionBarItemBackground",方法如下:
在values和values-v14文件夹分别建立一个styles文件,values-v14中sytles添加一个style:
1、<resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools">
<style name="actionbarlogobcg">
<item name="android:background" tools:targetApi="14">?android:attr/actionBarItemBackground</item>
</style>
</resources>
2、values中sytles添加一个style:
<resources xmlns:android="http://schemas.android.com/apk/res/android" >
<style name="actionbarlogobcg">
<item name="android:background">@drawable/room_item_new_bacg_selector</item>
</style>
</resources>
然后在布局文件中应用这个style:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/home"
android:layout_width="wrap_content"
android:layout_height="match_parent"
style="@style/actionbarlogobcg"
android:orientation="horizontal"
android:paddingRight="5dp" >
这样低版本会进第2步,高版本进第1步,完成版本兼容!