Android:AppCompat 21,如何将后退图标和溢出图标更改为自定义图标?

bil*_*out 10 android android-actionbar-compat

我的项目,直到前几天我用大侦探动作条,但我决定要在整个动作条样式更改为新材料的设计.在我的旧主题背面和溢出图标我有一些自定义图标设置在我的主题.但是在appcompat上我尝试在我的主题上定义它,我在工具栏上使用它,但它不起作用.谁知道如何使这成为可能?

我在工具栏上使用的主题(使用资产工作室生成):

<style name="Theme.Themewiz" parent="@style/Theme.AppCompat.Light.DarkActionBar">
    <item name="android:actionBarStyle">@style/ActionBar.Solid.Themewiz</item>

    <item name="android:actionBarItemBackground">@drawable/selectable_background_themewiz</item>
    <item name="android:popupMenuStyle">@style/PopupMenu.Themewiz</item>
    <item name="android:dropDownListViewStyle">@style/DropDownListView.Themewiz</item>
    <item name="android:actionBarTabStyle">@style/ActionBarTabStyle.Themewiz</item>
    <item name="android:actionDropDownStyle">@style/DropDownNav.Themewiz</item>
    <item name="android:actionModeBackground">@drawable/cab_background_top_themewiz</item>
    <item name="android:actionModeSplitBackground">@drawable/cab_background_bottom_themewiz</item>
    <item name="android:actionModeCloseButtonStyle">@style/ActionButton.CloseMode.Themewiz</item>

            <!-- Light.DarkActionBar specific -->
    <item name="android:actionBarWidgetTheme">@style/Theme.Themewiz.Widget</item>

    <item name="android:actionOverflowButtonStyle">@style/Theme.AppCompat.Overflow</item>

</style>

<style parent="@style/Widget.AppCompat.ActionButton.Overflow" name="Theme.AppCompat.Overflow">

    <item name="android:src">@drawable/ic_action_overflow</item>

</style>
Run Code Online (Sandbox Code Playgroud)

工具栏xml:

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/my_awesome_toolbar"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:minHeight="?attr/actionBarSize"
    android:background="?attr/colorPrimaryDark"
    app:theme="@style/Theme.Themewiz"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
Run Code Online (Sandbox Code Playgroud)

Kin*_*dio 16

使用appcompat 21来实现这些非常简单.

要更改后退图标,您必须使用支持工具栏作为操作栏. Chris Banes的这篇文章应该让你开始.

完成添加工具栏后,您所要做的就是:

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar_id);
toolbar.setNavigationIcon(R.drawable.back_icon);
Run Code Online (Sandbox Code Playgroud)

另一方面,要更改溢出图标,最简单的方法是向主题声明添加自定义样式.就像是:

<resources>
    <!-- Base application theme. -->
    <style name="Your.Theme" parent="@style/Theme.AppCompat">
        <!-- Your theme items go here -->

        <item name="actionOverflowButtonStyle">@style/OverFlow</item>
    </style>

    <!-- Styles -->
    <style name="OverFlow" parent="@android:style/Widget.AppCompat.ActionButton.Overflow">
        <item name="android:src">@drawable/overflow_icon</item>
    </style>

</resources>
Run Code Online (Sandbox Code Playgroud)

希望有所帮助.

  • 为我工作,除了使用`@style/Widget.AppCompat.ActionButton.Overflow`而不是`@android:style/Widget.AppCompat.ActionButton.Overflow` (2认同)