【发布时间】:2015-04-27 15:34:13
【问题描述】:
无论我如何尝试,我似乎都无法将徽标添加到 ActionBar。
这是我的 onCreate 方法:
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.feedview);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
title = drawerTitle = getTitle();
drawerItemsList = getResources().getStringArray(R.array.nav_drawer_items);
drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
drawerList = (ListView) findViewById(R.id.left_drawer);
//add the items to the navigation drawer here
navDrawerItems = new ArrayList<NavigationDrawerItem>();
navDrawerItems.add(new NavigationDrawerItem(R.drawable.ic_account_circle_black_24dp, ParseUser.getCurrentUser().getUsername(), ""));
navDrawerItems.add(new NavigationDrawerItem(R.drawable.ic_action_social_add, drawerItemsList[1], ""));
navDrawerItems.add(new NavigationDrawerItem(R.drawable.ic_action_reqs, drawerItemsList[2], ""));
navDrawerItems.add(new NavigationDrawerItem(R.drawable.ic_settings_power_black_24dp, drawerItemsList[3], ""));
//set adapter
adapter = new NavigationDrawerListAdapter(this, R.layout.drawer_list_item, navDrawerItems);
drawerList.setAdapter(adapter);
drawerList.setOnItemClickListener(new DrawerItemClickListener());
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeButtonEnabled(true);
getActionBar().setDisplayUseLogoEnabled(true);
getActionBar().setLogo(R.drawable.ic_logo_wide);
drawerToggle = new ActionBarDrawerToggle(this, drawerLayout, R.string.drawer_open, R.string.drawer_close);
drawerLayout.setDrawerListener(drawerToggle);
generateListView();
swipeRefresh = (SwipeRefreshLayout) findViewById(R.id.swipe_container);
swipeRefresh.setColorSchemeResources(R.color.white, R.color.black, R.color.gray);
swipeRefresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
generateListView();
swipeRefresh.setRefreshing(false);
}
}, 2500);
}
});
}
和我的自定义主题:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="OrangeActionBarTheme"
parent="@android:style/Theme.Holo.Light.DarkActionBar">
<item name="android:actionBarStyle">@style/OrangeActionBar</item>
<item name="android:actionMenuTextColor">#ffffff</item>
<item name="actionMenuTextColor">#ffffff</item>
</style>
<!-- ActionBar styles -->
<style name="OrangeActionBar"
parent="@android:style/Widget.Holo.Light.ActionBar">
<item name="android:background">@drawable/ab_solid</item>
</style>
我的徽标不会显示。我已经尝试在我的主题中设置一个徽标项目并将displayOptions 设置为useLogo|showHome 但这只是隐藏了所有活动中徽标/标题空间中应该存在的任何内容。我尝试在清单中添加 android:logo 属性无济于事。什么都没有显示,我不确定问题出在哪里。
我认为这可能与我的抽屉开关有关,但我无法正确诊断问题。知道为什么我的徽标没有出现在操作栏中,我可以做些什么来修复它?谢谢!
编辑:我的目标是 SDK 版本 11+。另外,我添加了我的 ActionBar 目前的样子。它显示标签而不是徽标,如果我删除标签,它会显示类名:
【问题讨论】:
-
那么你的targetSDKVersion小于21?
-
@Xcihnegn 抱歉,我已经添加了这些详细信息。是的,我的目标是 11 岁以上。
-
添加
getActionBar().setHomeButtonEnabled(true); -
我试过没有成功。我编辑了代码以反映我的更改。我试着把它放在
setLogo之后和之前。