的情况
我正在兼容版本的应用程序中设置ActionBar。现在我已经完成了:
- 导入android-support-v7-appcompat并将其作为库添加到我的项目中
- 将应用程序主题设置为:theme.AppCompat
- 将活动扩展到ActionBarActivity
之后,我使用一种方法来动态设置字幕:
private final void setStatus(int resId) {
ActionBar actionBar = getSupportActionBar();
actionBar.setSubtitle(resId);
}
private final void setStatus(CharSequence subTitle) {
ActionBar actionBar = getSupportActionBar();
actionBar.setSubtitle(subTitle);
}
在测试应用程序时,字幕不会出现。如果我加上这个:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_TITLE);
然后字幕出现,但应用程序图标消失。在显示字幕时,我可以做些什么来维护应用程序图标?
显示选项是位字段,因此您应该能够同时启用多个(使用OR运算符),如下所示:
getSupportActionBar().setDisplayOptions(
ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_TITLE);
或者,为了只添加一个值而不影响其他字段,请调用带有位掩码的版本:
getSupportActionBar().setDisplayOptions(
ActionBar.DISPLAY_SHOW_TITLE,
ActionBar.DISPLAY_SHOW_TITLE);
这就是我解决问题的方法:
/**Resolves the issue, shows the app icon*/
ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayShowHomeEnabled (true);
使用getSupportActionbar而不是actionbar
Actionbar actionbar = getSupportActionBar()
actionbar.setDisplayHomeAsUpEnabled(true);
actionBar.setHomeButtonEnabled(true);
actionbar.setIcon(YOUR ICON);
好的,上面所有的答案看起来都很相似,只是有一些小的区别,除了这个组合之外,没有一个对我有用
final ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_HOME);
actionBar.setDisplayShowHomeEnabled (true);
actionBar.setDisplayShowTitleEnabled(true);
actionBar.setIcon(R.drawable.rn_logo_icon);
请注意,此修复程序适用于使用AppCompat
主题