我正在尝试在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"
答案 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>