操作栏图标不显示图标

时间:2015-01-20 09:31:09

标签: android android-actionbar

我正在尝试在ActionBar中显示自定义图标,但它不起作用。 我已经用编程方式尝试了

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

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

和AndroidManifest.xml中的

android:logo="@drawable/forum_logo"

但是,两者都不起作用。 forum_logo.png是一个24x24的图像文件。

其他方法,例如

 getSupportActionBar().setHomeButtonEnabled(true);
 getSupportActionBar().setDisplayHomeAsUpEnabled(true);
 getSupportActionBar().setTitle((currentSubforum.getTitle()));

按预期工作。

我正在使用android.support.v7.app.ActionBarActivity,每个Activity都在ActionBarActivity。 AndroidManifest中的android:icon属性已在不同的drawable链接,android:theme"Theme.AppCompat.Light.DarkActionBar"

4 个答案:

答案 0 :(得分:1)

工具栏的答案是正确的,但缺少一个关键细节。

如果您使用工具栏,则您的主题必须禁用ActionBar。这有一个特定的主题:

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

现在在onCreate设置工具栏,如下所示:

Toolbar toolbar = (android.support.v7.widget.Toolbar) findViewById(R.id.toolbar);
toolbar.setLogo(R.drawable.ic_launcher);
setSupportActionBar(toolbar);

请注意,您应该使用支持工具栏:import android.support.v7.widget.Toolbar;

布局中的工具栏如下所示:

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="65dp"
    android:background="#40ffffff"/>

话虽这么说,但我发现用ActionBarActivity显示应用程序图标真的很奇怪。 希望还有另一种解决方法。

答案 1 :(得分:0)

在Fragment.onActivityCreated(...)之后,您将通过getActivity()访问有效的活动。您需要将其强制转换为ActionBarActivity,然后调用getSupportActionBar()。

((ActionBarActivity)getActivity())getSupportActionBar()setSubtitle(R.string.subtitle)。; 你确实需要演员。它的设计并不差,它具有向后兼容性。

答案 2 :(得分:0)

ActionBar actionBar = getActionBar(); 
actionBar.setIcon(R.drawable.ic_action_video);
actionBar.setDisplayShowTitleEnabled(true);

只使用3件事。

答案 3 :(得分:0)

清单中的

使用你的服装主题。

<application
        android:name="com.example.ifis.MyApplication"
        android:allowBackup="true"
        android:icon="@drawable/ifis_logo"
        android:label="@string/app_name"
        android:theme="@style/MyTheme" >

在样式文件夹中自定义您的主题,如下所示,并将您的图标添加到icon

<style name="MyTheme" parent="@android:style/Theme.Holo.Light">
        <item name="android:actionBarStyle">@style/MyActionBar</item>
    </style>
    <style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
        <item name="android:background">@color/ifisGreen</item>
        <item name="android:icon">@drawable/your_logo</item>
        <item name="android:textColor">@color/ifisGreen</item>
        <item name="android:height">30dp</item>        
    </style>