ActionBar上没有应用程序图标

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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>

谢谢!

答案

从AppCompat版本21开始,Action Bar遵循material design guidelines并使用Toolbar

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

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

但是,如果您想要一个应用程序图标,setLogo()是正确的方法。

另一答案

使用以下代码更新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);
}

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

另一答案

在Style.xml中

 <style name="MyTheme_ActionBar" parent="@style/Theme.AppCompat.Light">
   <item name="icon">@drawable/actionbar_logo</item>
  </style>

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

ActionBar mActionBar = getSupportActionBar();
mActionBar.setDisplayOptions(ActionBar.DISPLAY_HOME_AS_UP | ActionBar.DISPLAY_SHOW_CUSTOM | ActionBar.DISPLAY_SHOW_HOME);
另一答案

如果您不关心Material主题,并且可以使用看起来更像JellyBean / Kitkat样式的Activity并在Action Bar中包含图标,那么您可以执行以下操作:

首先,从以下位置更改styles.xml中的主题设置:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">

对此:

<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">

现在将所有活动更改为继承自android.app.Activity而不是android.support.v7.app.ActionBarActivity。那是:

改变这个:

import android.support.v7.app.ActionBarActivity;

public class MainActivity extends ActionBarActivity{

对此:

import android.app.Activity;

public class MainActivity extends Activity {

执行上述两个步骤的结果是AndroidManifest.xml中android:icon属性指定的图标将出现在Action Bar中。

另一答案

真的行。试试这个..将这些行包含在你的onCreate方法中,

ActionBar menu = getSupportActionBar();
menu.setDisplayShowHomeEnabled(true);
menu.setIcon(R.mipmap.jerry);

另外,请确保jerry是mipmap文件夹下的.png图像文件。要在操作栏的开头准确获取图标,请在mipmap文件夹中包含所有屏幕尺寸的jerry文件,如(hdpi,mdpi,xhdpi,xxhdpi,xxxhdpi等)。

另一答案

在操作栏上设置图标

在操作栏上显示图标可以轻松欺骗任何陷入困境的开发人员。请记住这个简单的方法,它永远不会让你陷入困境。

如果你的activity正在扩展活动,

getActionBar().setDisplayShowHomeEnabled(true);

如果您的activity正在扩展AppCompatActivity,

ActionBar actionBar= getSupportActionBar();
actionBar.setIcon(R.mipmap.ic_launcher);
actionBar.setDisplayShowHomeEnabled(true);

它总是对我们有用,记住它。

以上是关于ActionBar上没有应用程序图标的主要内容,如果未能解决你的问题,请参考以下文章

应用ActionBar中的返回按钮

ActionBar 中的 SearchView 显示图标两次且未获得自动对焦。这是为啥?

IllegalArgumentException:快速切换 ActionBar 选项卡时没有找到片段 id 的视图

显示 ActionBar 选项卡的两个片段

从android中的片段更改自定义ActionBar标题

如何在 ActionBar 图标上获取文本?