AndroidManifest.xml
<uses-sdk android:minSdkVersion="11" />
<application android:uiOptions="splitActionBarWhenNarrow" >
下面这行用于代码中动态判断版本,你可以用自己的解决方案
<meta-data
android:name="sf_icon"
android:value="meizu" />
Tools.java
/**
* Get value of a meta from Manifest
*
* @param context
* @return
*/
public static String getMeta(Context context, final String name) {
String str = "";
ApplicationInfo ai = null;
try {
ai = context.getPackageManager().getApplicationInfo(context.getPackageName(), PackageManager.GET_META_DATA);
Object v = ai.metaData.get(name);
if (v != null) {
str = v.toString();
}
} catch (NameNotFoundException e) {
LogUtils.e(e);
}
return str;
}
/**
* 判断是否为魅族专版(tab显示不同于普通版)
*
* @param context
* @return
*/
public static boolean isMeizu(Context context) {
String sf = Tools.getMeta(context, Constants.META_SF_ICON);
if (sf.equals("meizu")) {
return true;
}
return false;
}
xxxActivity.java
private boolean isMeizu = false;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
isMeizu = Tools.isMeizu(getApplicationContext());
if (isMeizu) {
// 设置若顶栏没有显示内空,则隐藏
SmartBarUtils.setActionBarViewCollapsable(getActionBar(), true);
getActionBar().setDisplayOptions(0);
} else {
requestWindowFeature(Window.FEATURE_NO_TITLE);
}
setContentView(R.layout.main);
if (isMeizu) {
getTabWidget().setVisibility(View.GONE);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
if (isMeizu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.tab_menu, menu);
}
return true;
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
for (int i = 0; i < menu.size(); i++) {
refreshTabIcon(menu.getItem(i), getTabHost().getCurrentTab());
}
return super.onPrepareOptionsMenu(menu);
}
private void refreshTabIcon(MenuItem item, int currentTab) {
if (item.getGroupId() == R.id.tab_group) {
switch (item.getItemId()) {
case R.id.tab_yuanfen:
item.setIcon(currentTab == TAB_TAG_INDEX_YUANFEN ? R.drawable.yuanfen_foucs
: R.drawable.yuanfen);
break;
case R.id.tab_search_love:
item.setIcon(currentTab == TAB_TAG_INDEX_SEARCH_LOVE ? R.drawable.search_love_foucs
: R.drawable.search_love);
break;
case R.id.tab_msgbox:
item.setIcon(currentTab == TAB_TAG_INDEX_MSG_BOX ? R.drawable.msg_box_foucs
: R.drawable.msg_box);
break;
case R.id.tab_space:
item.setIcon(currentTab == TAB_TAG_INDEX_SPACE ? R.drawable.space_foucs
: R.drawable.space);
break;
case R.id.tab_more:
item.setIcon(currentTab == TAB_TAG_INDEX_MORE ? R.drawable.more_foucs
: R.drawable.more);
break;
default:
break;
}
}
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getGroupId() == R.id.tab_group) {
int index=-1;
switch (item.getItemId()) {
case R.id.tab_yuanfen:
{
getTabHost().setCurrentTab(TAB_TAG_INDEX_YUANFEN);
index=0;
}
break;
case R.id.tab_search_love:
{
getTabHost().setCurrentTab(TAB_TAG_INDEX_SEARCH_LOVE);
index=1;
}
break;
case R.id.tab_msgbox:
{
getTabHost().setCurrentTab(TAB_TAG_INDEX_MSG_BOX);
index=2;
}
break;
case R.id.tab_space:
{
getTabHost().setCurrentTab(TAB_TAG_INDEX_SPACE);
index=3;
}
break;
case R.id.tab_more:
{
getTabHost().setCurrentTab(TAB_TAG_INDEX_MORE);
index=4;
}
break;
default:
break;
}
invalidateOptionsMenu();
if (index != -1) {
backToFirst(index);
}
}
return super.onOptionsItemSelected(item);
}
tab_menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<group android:id="@+id/tab_group">
<item
android:id="@+id/tab_yuanfen"
android:showAsAction="always|withText"
android:title="@string/YUAN_FEN_STR"/>
<item
android:id="@+id/tab_search_love"
android:showAsAction="always|withText"
android:title="@string/SEARCH_LOVE_STR"/>
<item
android:id="@+id/tab_msgbox"
android:showAsAction="always|withText"
android:title="@string/MESSAGE_BOX_STR"/>
<item
android:id="@+id/tab_space"
android:showAsAction="never|withText"
android:title="@string/SPACE_STR"/>
<item
android:id="@+id/tab_more"
android:showAsAction="never|withText"
android:title="@string/MORE_STR"/>
</group>
</menu>
ss
sss