wake-up-neo.com

Überlaufsymbol in der Aktionsleiste ändern

Kann das Überlaufsymbol in der Aktionsleiste geändert werden? Ich habe blaue Symbole für alle ActionBar-Elemente und möchte auch das Überlaufsymbol ändern, wenn es erscheint.

106
pjanecze

Sie können dies mit einem Stil, aber Sie müssen ihn der Hauptdeklaration Theme hinzufügen.

<resources>
    <!-- Base application theme. -->
    <style name="Your.Theme" parent="@Android:style/Theme.Holo">
        <!-- Pointer to Overflow style ***MUST*** go here or it will not work -->
        <item name="Android:actionOverflowButtonStyle">@style/OverFlow</item>
    </style>

    <!-- Styles -->
    <style name="OverFlow" parent="@Android:style/Widget.Holo.ActionButton.Overflow">
        <item name="Android:src">@drawable/ic_action_overflow</item>
    </style>

</resources>

Sie können es auch dynamisch ändern, worauf ich hier näher eingehen möchte:

Das Android-Überlaufmenüsymbol programmatisch ändern

248
adneal

Für diejenigen, die es nicht zum Laufen bringen können, versuchen Sie es OHNE den "Android:" - Namespace.

<item name="actionOverflowButtonStyle">@style/OverFlow</item>
16
user2968401
  1. Ändern Sie Ihr benutzerdefiniertes Überlaufsymbol von Actionbar in styles.xml.

     <resources>
        <!-- Base application theme. -->
        <style name=“MyTheme" parent="@Android:style/Theme.Holo">
           <!-- Pointer to Overflow style DONT forget! -->
           <item name="Android:actionOverflowButtonStyle">@style/MyOverFlow</item>
        </style>
    
        <!-- Styles -->
        <style name="MyOverFlow" parent="@Android:style/Widget.Holo.ActionButton.Overflow">
            <item name="Android:src">@drawable/ic_your_action_overflow</item>
        </style>
     </resources>
    
  2. Setzen Sie das benutzerdefinierte Thema "MyTheme" in das Anwendungs-Tag von AndroidManifest.xml

    <application
        Android:name="com.example.Android.MainApp"
        Android:theme="@style/AppTheme">
    </application>
    

Habe Spaß[email protected]@

4
Luna Kong

Was auch immer ich in styles.xml versucht habe, keine der Lösungen funktionierte für mich. Wenn Sie AppCompat 23+ haben, was Sie sollten, ist dies der einfachste Weg, der tatsächlich funktioniert:

toolbar.setOverflowIcon(drawable);
3
Starwave

@ adneals Antwort ist korrekt (also ist dies nur eine Community-Wiki-Erklärung, um sie zu erweitern).

Einer der Kommentare deutete an, dass es Missverständnisse darüber geben könnte, wie dies getan wird. Daher ist meine Antwort nur ein weiteres Beispiel, wie das Überlauf-Symbolbild überschrieben wird.

Der folgende Code basiert auf den Vorlagenstilen aus dem ADT-Beispiel New Android Project. Der Code stammt aus der Datei styles.xml im Ordner res/values.


<style name="AppBaseTheme" parent="Android:Theme.Light">
    <!--
        Theme customizations available in newer API levels can go in
        res/values-vXX/styles.xml, while customizations related to
        backward-compatibility can go here.

    -->
</style>

<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">

    <!-- All customizations that are NOT specific to a particular API-level can go here. -->
    <item name="Android:actionOverflowButtonStyle">@style/OverflowMenuButton</item>
</style>

<style name="OverflowMenuButton" parent="@Android:style/Widget.Holo.ActionButton.Overflow">
    <item name="Android:src">@drawable/ic_menu_moreoverflow</item>
</style>

Dieser Code ersetzt das standardmäßige Überlaufsymbol durch das Zeichnungsobjekt ic_menu_moreoverflow. Wenn Sie eine schnelle Methode zum Testen suchen, verwenden Sie den Dateinamen des Startersymbols Ihrer App. Dadurch wird deutlich, wie es funktioniert.

Eine nützliche Ressource, die verwendet werden soll, wenn Sie versuchen, das ActionBar-Styling zu verstehen, ist:

Dort können Sie bestimmte Farben definieren, die für Ihr Überlaufsymbol verwendet werden sollen, und die ZIP-Datei enthält die richtige styles.xml-Datei für Sie.

1

Nach langer Suche, worauf ich die Anleitung erhielt, wie folgt:

  1. Überprüfen Sie das Design in der Manifestdatei.
  2. Dann gehen Sie zu res-> values-> themes.
  3. Suchen Sie den Themennamen in dieser Datei.
  4. Fügen Sie das Element innerhalb des Designs in der theme.xml hinzu:

    <item name="Android:actionBarWidgetTheme">@style/widgetStyle</item>
    <item name="Android:actionOverflowButtonStyle">@style/MyActionButtonOverflow</item>
    
  5. Fügen Sie das Symbol im Stil in derselben Datei ein. Ich meine damit theme.xml:

    <style name="MyActionButtonOverflow" parent="Android:style/Widget.Holo.ActionButton.Overflow">
    <item name="Android:src">@drawable/icon_menu</item>
    </style>
    
  6. Überprüfen Sie das benutzerdefinierte Symbol, das Sie ändern möchten

Es hat für mich funktioniert

0
Issac Balaji

Um die Farbe des Überlauf-Symbols zu ändern, können Sie einfach hinzufügen

toolbar.setOverflowicon(getDrawable(R.id.whiteIcon));

oder

toolbar.setOverflowicon(getDrawable(R.id.redIcon));

Es ändert das Symbol, wählt die gewünschte Farbe und wird als Overflowicon festgelegt.

0
Navin Kumar