ActionBar上没有应用程序图标

rsa*_*ano 33 android intellij-idea android-actionbar

这里有很多关于向ActionBar添加图标的问题但没有解决我的问题.如果您知道此问题的副本,请随时发表评论或关闭此问题.

我将我的项目迁移到IntelliJ,我没有遇到过我以前的IDE(Eclipse)的问题.

问题:应用程序图标未显示在ActionBar中.

在此输入图像描述

我认为它应该默认添加,这就是为什么我不能通过它添加它

在此输入图像描述

这是它的XML

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context=".MainActivity" >

    <item android:id="@+id/action_settings"
        android:title="@string/action_settings"
        android:orderInCategory="100"
        app:showAsAction="always" />
</menu>
Run Code Online (Sandbox Code Playgroud)

谢谢!

ian*_*ake 38

从AppCompat版本21开始,Action Bar遵循材料设计指南并使用工具栏:

  • 标题和副标题.标题应该是工具栏在导航层次结构中的当前位置以及其中包含的内容的路标.字幕(如果存在)应指示有关当前内容的任何扩展信息.如果应用使用徽标图片,则应强烈考虑省略标题和副标题.

在现代Android UI中,开发人员应该更多地依赖于工具栏的视觉上不同的颜色方案而不是应用程序图标.API 21设备和更新设备不鼓励使用应用程序图标和标题作为标准布局.

但是,如果您需要应用程序图标,则setLogo()是正确的方法.


Fal*_*awk 25

使用以下代码更新onCreate()方法.

 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getSupportActionBar().setDisplayShowHomeEnabled(true);
    getSupportActionBar().setLogo(R.drawable.ic_launcher);
    getSupportActionBar().setDisplayUseLogoEnabled(true);
    setContentView(R.layout.activity_main);
}
Run Code Online (Sandbox Code Playgroud)

它对我有用.注意:ic_launcher是您要在操作栏中显示的图标,因为您必须在应用项目的drawable文件夹中添加该图标.


Vik*_*ram 8

在Style.xml中

 <style name="MyTheme_ActionBar" parent="@style/Theme.AppCompat.Light">
   <item name="icon">@drawable/actionbar_logo</item>
  </style>
Run Code Online (Sandbox Code Playgroud)

在活动中添加此内容并尝试

ActionBar mActionBar = getSupportActionBar();
mActionBar.setDisplayOptions(ActionBar.DISPLAY_HOME_AS_UP | ActionBar.DISPLAY_SHOW_CUSTOM | ActionBar.DISPLAY_SHOW_HOME);
Run Code Online (Sandbox Code Playgroud)

  • 我添加了"ActionBar.DISPLAY_SHOW_TITLE"以获得标题. (4认同)