我升级到avtionbar app compat v21用于材料设计。
但是我观察到它没有在操作栏和导航菜单和后退按钮中显示应用程序图标与旧的appcompat库相比占用更多空间。
有人遇到过这个问题吗?我搜索了很多,但没有找到任何有用的东西。
以下行也无效。
getSupportActionBar().setLogo(R.drawable.ic_launcher);
我正在使用动作栏的样式,就像
<style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
<item name="android:icon">@drawable/ic_action_bar</item>
<item name="android:background">@drawable/action_bar_bg</item>
<item name="android:windowContentOverlay">@null</item>
<!-- Support library compatibility -->
<item name="background">@drawable/action_bar_bg</item>
</style>
我知道像Toolbar这样的其他解决方案。但是我处于发布阶段,由于时间限制,我正在寻找一些快速解决方案(如果有的话)。添加工具栏需要更多时间。
答案 0 :(得分:5)
setIcon/setLogo
方法只有在您设置了 DisplayOptions 后才能使用 -
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_TITLE);
actionBar.setIcon(R.drawable.ic_launcher);
您还可以设置显示LOGO的选项(只需添加常量ActionBar.DISPLAY_USE_LOGO
)。更多信息 - displayOptions
答案 1 :(得分:4)
我将此添加到我的主题:
<item name="android:windowNoTitle">false</item>
<item name="android:windowActionBar">true</item>
<item name="windowActionBar">true</item>
然后ActionBar回来了。
注意:如果使用supportRequestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);然后你不能这样做,但必须将工具栏添加到您的布局(无论如何都不是那么多工作)
答案 2 :(得分:0)
使用getSupportActionbar而不是actionbar
Actionbar actionbar = getSupportActionBar()
actionbar.setDisplayHomeAsUpEnabled(true);
actionBar.setHomeButtonEnabled(true);
actionbar.setIcon(YOUR ICON);