在api 21的动作栏上显示徽标

时间:2015-08-02 06:59:26

标签: android android-actionbar

我尝试使用以下代码在操作栏中显示图标:

getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setLogo(R.drawable.ic_launcher);
getSupportActionBar().setDisplayUseLogoEnabled(true);

但不是显示R.drawable.ic_launcher徽标,而是显示后退按钮,如下图所示:

enter image description here

我用过:

  • api 11 for min sdk,
  • api 21 for target sdk,
  • api 21 for compile sdk,
  • buildtool 22.0.1,
  • Android studio 1.2.2,

我该怎么办? TNX

3 个答案:

答案 0 :(得分:1)

试试这个:

getSupportActionBar().setIcon(R.drawable.ic_launcher);

而不是

getSupportActionBar().setLogo(R.drawable.ic_launcher);

答案 1 :(得分:1)

setLogo()setIcon()方法,如果您没有正确设置DisplayOptions,这些方法都无效。

就这样做,

   getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_HOME | 
   ActionBar.DISPLAY_SHOW_TITLE | ActionBar.DISPLAY_HOME_AS_UP | ActionBar.DISPLAY_USE_LOGO);
   actionBar.setIcon(R.drawable.ic_launcher);

您可以根据需要自定义常量。

<强>更新

请添加此项以隐藏后退按钮,

getSupportActionBar().setDisplayHomeAsUpEnabled(false);

答案 2 :(得分:0)

&#34; up&#34;可供性指标由主题的homeAsUpIndicator属性中指定的drawable提供。要使用您自己的自定义版本覆盖它,它将是这样的:

<style name="Theme.MyFancyTheme" parent="android:Theme.Holo">
<item name="android:homeAsUpIndicator">@drawable/my_fancy_up_indicator</item>
</style>

如果您使用您的应用程序支持3.0之前的版本,请确保将此版本的自定义主题放在值-v11或类似值中。