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?

  • Warum startet meine App unglaublich langsam (10s +) auf den ersten Lauf und zeigt nur weißen Bildschirm auf Android 5.0?
  • Wie kann ich eine Benachrichtigung erhalten, wenn das Gerät die Netzwerkkonnektivität in Android L (API 21) verliert,
  • NameNotFoundException Webview
  • "Fehler beim Finden von Stil mit id 0x7f070001 im aktuellen Thema" bei der Verwendung von CardView android L (api 21)
  • Fehler beim Abrufen von übergeordneten Elementen: Keine Ressource gefunden, die mit dem Vornamen 'android: Theme.Material.Light' übereinstimmt.
  • Verständnis der Notwendigkeit von Android VSYNC Signale
  • Wie groß sollte Action Bar (Symbolleiste) Symbole in der neuen Android Material Design?
  • Wie man Kontaktdetails Bildschirm wie Lollipop implementieren
  • 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.