ActionBar Compat没有显示应用程序图标

时间:2013-11-21 14:27:50

标签: android android-actionbar

我在我的应用中使用兼容版本设置了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);

然后出现字幕,但应用程序图标消失了。在显示副标题时,我该怎么做才能保留应用程序图标?

4 个答案:

答案 0 :(得分:2)

显示选项是位域,因此您应该能够同时启用多个(使用OR运算符),如下所示:

getSupportActionBar().setDisplayOptions(
    ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_TITLE);

或者,要只添加一个值而不影响其他字段,请使用位掩码调用该版本:

getSupportActionBar().setDisplayOptions(
    ActionBar.DISPLAY_SHOW_TITLE,
    ActionBar.DISPLAY_SHOW_TITLE);

答案 1 :(得分:0)

这就是我解决问题的方法:

/**Resolves the issue, shows the app icon*/
ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayShowHomeEnabled (true);

答案 2 :(得分:0)

使用getSupportActionbar而不是actionbar

Actionbar actionbar = getSupportActionBar()
actionbar.setDisplayHomeAsUpEnabled(true);
actionBar.setHomeButtonEnabled(true);
actionbar.setIcon(YOUR ICON); 

答案 3 :(得分:0)

好的,上面的所有答案看起来都很相似,只有细微的差别,但这对我来说都没有用,但这个组合

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主题