【问题标题】:android toolbar for pre lollipop devices棒棒糖前设备的 android 工具栏
【发布时间】:2014-11-04 18:56:23
【问题描述】:

我从 ActionBar 更改为 Toolbar 时遇到了很多问题。我在这里列出了它们

1 ) 我有许多使用 backstack 添加/替换的片段。当我按下后退按钮时一切正常,但是当我更改为工具栏时,当我按下后退按钮时应用程序关闭。

2 ) 弹出菜单背景为黑色。

<item name="android:popupMenuStyle">@style/PopupMenu</item>
<style name="PopupMenu" parent="@android:style/Widget.PopupMenu">
    <item name="android:popupBackground">@android:color/white</item>
</style>

即使这样也没有用。

如果我使用 AppCompat.Light 主题,popupmenu 的背景颜色是白色,但是 NavigationIndicator 图标和所有这些都变成黑色

3 ) 这是我的菜单风格。这里没有显示 ID 为“add”的项目,而是我一如既往地使用 showAsAction。它在菜单中(当我按下 3 个垂直点按钮时菜单会膨胀),但图标不可见。

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".com.hirak.assistere_doit.do_it_main_screen">

<item android:id="@+id/action_settings"
    android:orderInCategory="100"
    android:showAsAction="never"
    android:title="Settings" />
<item android:id="@+id/add"
    android:icon="@drawable/add"
    android:showAsAction="always"/>

</menu>

【问题讨论】:

  • 我忘了提到我使用工具栏的主要目的是新的导航抽屉指示器。如果我可以在操作栏中获得该指示符,我不会费心使用工具栏

标签: android toolbar


【解决方案1】:

为了给弹出菜单设置样式,你需要应用一个弹出窗口

<android.support.v7.widget.Toolbar android:id="@+id/toolbar" app:theme="@style/ActionBar" android:layout_width="match_parent" android:layout_height="wrap_content" app:popupTheme="@style/ToolbarPopup" />

然后在您的主题中,覆盖您想要更改的值

<style name="ToolbarPopup" parent="Widget.AppCompat.Light.PopupMenu">
    <item name="android:background">@color/white</item>
    <item name="android:textSize">14sp</item>
</style>

要将导航指示器更改为白色,请添加到您的工具栏

<style name="ActionBar" parent="Widget.AppCompat.Toolbar">
    ...
    <item name="android:textColorSecondary">@color/white</item>
    <item name="actionMenuTextColor">@color/white</item>
    <item name="android:textColorPrimary">@color/white</item>
</style>

至于后退按钮问题,我需要更多信息 - 代码等。

【讨论】:

    【解决方案2】:

    关于后退按钮问题。
    当我更改为工具栏时,我遇到了同样的问题。
    问题在于使用 FragmentManager instead of support.v4.app.FragmentManagerCreating FragmentManager object by getSupportFragmentManager() 方法并将所有片段导入更改为 android.support.v4.app.Fragment - 为我解决了这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-27
      • 2016-11-23
      • 2016-02-11
      • 2016-05-02
      • 1970-01-01
      • 2015-09-15
      • 1970-01-01
      相关资源
      最近更新 更多