Theme.AppCompat nötig für Snackbar

  • Antworten:6
  • OffenNicht stickyNicht beantwortet
  • Forum-Beiträge: 2.492

08.04.2016, 17:52:52 via Website

Hallo,
ich habe bisher das Theme.NoTitleBar verwendet. Jetzt will ich aber die Snackbar aus der SupportLibrary einbinden, wenn ich das starte kommt aber die Meldung, dass ich Theme.AppCompat verwenden muss:

IllegalArgumentException: You need to use a Theme.AppCompat theme (or descendant) with the design library

Das Problem ist jetzt, wenn ich ein Theme.AppCompat Theme verwende sieht alles anders aus, und die Buttons sind deutlich größer.
Gibt es eine Möglichkeit das AppCompat Theme nur für eine bestimmte View zu nutzen, wo die Snackbar drin ist? Oder gibt es eine andere Lösung?

Antworten
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.177

08.04.2016, 18:41:20 via Website

Ich bin mir jetzt nicht sicher ob das funktioniert, aber du könntest ein eigenen Snackbar Stple machen, welcher von Theme.AppCompat erbt.
Diesen kannst du dann als style auf die Snackbar setzen. vlt geht es dann.

Sonst:
Ich entwickle immer mit AppCompat und der von AS generierten Theme mit NoTitle.
Damit hab ich alle Materialkomponenten etc. abgedeckt.

Im schlimmsten Fall musst du umstellen und deine Styles etc. anpassen...

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
  • Forum-Beiträge: 2.492

08.04.2016, 18:52:33 via App

Du machst dann im Manifest direkt Theme.AppCompat bzw verweist auf ein Style in der styles.xml? Ist Theme.AppCompat.NoActionBar denn für alle Geräte so, dass nur die Status Leiste oben angezeigt wird?
Die ganzen Themes fand ich schon immer verwirrend...

Antworten
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.177

08.04.2016, 18:55:47 via Website

Genau so mache ich es.
Aber AS gereriert mit das hier:

  <!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

<style name="AppTheme.NoActionBar" parent="@style/AppTheme">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>

Hat bisher auf jedem Gerät geklappt.

In der Manifest verweist du dann einfach auf @style\AppTheme.NoActionBar und es sollte passen.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
  • Forum-Beiträge: 2.492

08.04.2016, 18:58:54 via App

Okay dann werde ich den Rest einfach anpassen.
Hab grad eine neue apk in betaphase hochladen wollen, dann stand da, dass die App für 70 weitere Sprachen angepasst wurde, was ich aber nicht gemacht hab. Kann das problematisch werden? Und wie kommt die Console auf die Idee?

Antworten
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.177

08.04.2016, 19:05:47 via Website

Keine Ahnung da bin ich überfragt.
Solange du nicht 70 strings.xmls hast sollte das nicht der Fall sein.
Und zum Problem sollte es auch nicht werden

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten

Empfohlene Artikel