Wie man das DrawerArrowToggle aus der Android Appcompat v7 21 Bibliothek speichert

Also jetzt, dass Android 5.0 veröffentlicht wurde, war ich frage mich, wie man die animierten Actionbar Symbole Stil.

Diese bibliothek hier implementiert und stiliert es gut für mich, aber seit der appcompat v7 bibliothek hat es wie kann es gestylt werden?

Ich habe das mit dem v7 DrawerToggle implementiert. Allerdings kann ich es nicht stylen. Bitte helfen Sie

Ich fand das Styling dafür in der v7 styles_base.xml

<style name="Base.Widget.AppCompat.DrawerArrowToggle" parent=""> <item name="color">?android:attr/textColorSecondary</item> <item name="thickness">2dp</item> <item name="barSize">18dp</item> <item name="gapBetweenBars">3dp</item> <item name="topBottomBarArrowSize">11.31dp</item> <item name="middleBarArrowSize">16dp</item> <item name="drawableSize">24dp</item> <item name="spinBars">true</item> </style> 

Ich habe das meinen Stilen hinzugefügt und habe nicht geklappt. Auch meiner attr.xml hinzugefügt

 <declare-styleable name="DrawerArrowToggle"> <!-- The drawing color for the bars --> <attr name="color" format="color"/> <!-- Whether bars should rotate or not during transition --> <attr name="spinBars" format="boolean"/> <!-- The total size of the drawable --> <attr name="drawableSize" format="dimension"/> <!-- The max gap between the bars when they are parallel to each other --> <attr name="gapBetweenBars" format="dimension"/> <!-- The size of the top and bottom bars when they merge to the middle bar to form an arrow --> <attr name="topBottomBarArrowSize" format="dimension"/> <!-- The size of the middle bar when top and bottom bars merge into middle bar to form an arrow --> <attr name="middleBarArrowSize" format="dimension"/> <!-- The size of the bars when they are parallel to each other --> <attr name="barSize" format="dimension"/> <!-- The thickness (stroke size) for the bar paint --> <attr name="thickness" format="dimension"/> </declare-styleable> 

Aber Abstürze und sagt Farbtyp Fehler, wenn dies zu tun. Was vermisse ich?

  • Android: elevation funktioniert nicht in L Vorschau
  • OnClickListener für CardView?
  • Wie bekomme ich benachrichtigt, wenn ein Übergang zwischen den Aktivitäten abgeschlossen ist?
  • INSTALL_FAILED_NO_MATCHING_ABIS auf GenyMotion
  • Mit CardView und RecyclerView in meine Layout-Dateien wirft eine Ausnahme aus
  • Android Lollipop 5.0 Bluetooth Niedrige Energie zentrale Rolle ist schlechte Leistung
  • Dialogtasten mit langem Text nicht verpackt / gequetscht - Material Thema auf Android 5.0 Lutscher
  • Android 5.0: Howto ändern Übersicht Screen Task Titel Hintergrundfarbe
  • 6 Solutions collect form web for “Wie man das DrawerArrowToggle aus der Android Appcompat v7 21 Bibliothek speichert”

    Die folgenden Arbeiten für mich:

     <style name="MyTheme" parent="Theme.AppCompat"> <item name="drawerArrowStyle">@style/MyDrawerArrowToggle</item> </style> <style name="MyDrawerArrowToggle" parent="Widget.AppCompat.DrawerArrowToggle"> <item name="color">@color/your_color</item> </style> 

    In meinem Fall wollte ich die Farbe der Schubladenpfeil- und Hamburger-Ikone ändern. Einstellung Schublade Pfeil Stil geändert nur Hamburger Symbol Farbe.

    So öffnete ich Widget.AppCompat.DrawerArrowToggle Stil in values.xml von appcompat-v7.

     <style name="Widget.AppCompat.DrawerArrowToggle" parent="Base.Widget.AppCompat.DrawerArrowToggle"> <item name="color">?attr/colorControlNormal</item> </style> 

    Also habe ich ein spezielles Thema erstellt:

     <style name="Toolbar_Theme"> <item name="colorControlNormal">@android:color/black</item> </style> 

    Und hat es auf meine Symbolleiste wie folgt angewendet:

     <android.support.v7.widget.Toolbar android:id="@+id/toolbar" app:theme="@style/Toolbar_Theme" /> 

    Beachten Sie, dass ich das Themenattribut verwenden , anstatt das controlColorNormal in meinem App- controlColorNormal definieren. Diese Art und Weise Farbe wird nur auf Symbolleisten-Elemente, wenn ich es in App-Thema, dann wird es auch Auswirkungen auf Bildlaufleisten Farbe, etc.

    Einstellung colorControlNormal Attribut ändern sowohl die Farbe der Hamburger und Schublade Pfeil.

    Für jedermann, der hier endet (wie ich) auf der Suche nach einem Weg, um die Schublade Indikator-Symbol mit Ihrem eigenen zeichen (nicht animiert) mit dem v7 ActionBarDrawerToggle ersetzen, können Sie die folgenden:

     //After instantiating your ActionBarDrawerToggle mDrawerToggle.setDrawerIndicatorEnabled(false); Drawable drawable = ResourcesCompat.getDrawable(getResources(), R.drawable.your_custom_icon, getActivity().getTheme()); mDrawerToggle.setHomeAsUpIndicator(drawable); mDrawerToggle.setToolbarNavigationClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (mDrawerLayout.isDrawerVisible(GravityCompat.START)) { mDrawerLayout.closeDrawer(GravityCompat.START); } else { mDrawerLayout.openDrawer(GravityCompat.START); } } }); 

    Für meinen Fall war die Besprechung der Actionbar relevant, um zwischen einem weißen und einem dunklen Hamburger-Icon zu wechseln:

     <item name="actionBarWidgetTheme">@style/Theme.AppCompat</item> 

    Vs.

     <item name="actionBarWidgetTheme">@style/Theme.AppCompat.Light</item> 

    Dein Style Name hat kein Elternteil Hier ist die Arbeit mit Android 5 und Material Theme, ohne Notwendigkeit, Actionbar durch AppCompat zu ersetzen Hier ist mein Stil, ich brauchte nur, um Farbe zu weiß zu ändern, weil ich einen farbigen Balken hatte

      <style name="myTheme.DrawerArrowToggle" parent="Base.Widget.AppCompat.DrawerArrowToggle"> <item name="color">@color/white</item> </style> 

    Und hier ist mein Thema

     <style name="Theme_AppTheme.Light" parent="@android:style/Theme.Material.Light"> <!-- Drawer\arrow in white --> <item name="drawerArrowStyle">@style/myTheme.DrawerArrowToggle</item> 

    Ps Es gibt nur ein Problem, auf Adroid 4.4 und normale Actionbar ist nicht gut gemacht. Und unglücklicherweise die nre drawerToggle von v7 nicht von v4 erben

    Nicht sicher, was ist der genaue Fehler, wenn Sie Farbe bereits definiert haben, gehen Sie zu attrs.xml Suche nach attr name = "Farbe" und umbenennen es oder für Test Kommentar es, müssen Sie möglicherweise Ihre benutzerdefinierte attr zu einem anderen Namen ändern, nicht sicher Dies ist eine Unterstützung lib Problem, das funktioniert für mich

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.