Meine App verwendet AppCompat nicht, da meine minSdkVersion
15
ist. Ich möchte smart-app-rate library in es benutzen, aber ich bin immer (was zu erwarten ist):Wie verwende ich die AppCompat-Bibliothek in meiner App, die nicht AppCompat ist?
java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
Bitte beachten Sie, dass ich nicht meine App AppCompat ändern kann, weil A) gibt es keine wirkliche Notwendigkeit und B), wenn ich tun Meine App sieht ganz anders aus als sie sollte.
Also, ich habe versucht, die Bibliothek als ZIP herunterladen und transformierte es AppCompat nicht zu verwenden. Ich habe die Schritte ausgeführt, die in this answer erwähnt werden, aber jetzt bekomme ich eine ganze Reihe von Fehlern (wie ContextCompat.getColor
, die ich mit Nicht-AppCompat-Funktion ersetzen müsste) und ich bin nicht sicher, ob dies der richtige Weg ist, dies zu tun.
Wie löse ich das einfach?
Es gibt keine "wenn Ihr min SDK größer als X ist, dann sollten Sie keine AppCompat-Anweisung verwenden". Es wird empfohlen, die Supportbibliotheken zu verwenden (insbesondere, wenn Ihr min SDK <21 ist, da die APIs stark voneinander abweichen), da die Supportkomponenten eine einheitliche Schnittstelle für die Interaktion mit Elementen bereitstellen, ohne dass der Entwickler bestimmte API-Anforderungen überprüfen muss. Wenn Sie "Theme.AppCompat" als übergeordnetes Format für Ihr aktuelles App-Design definieren, ändert sich auch das Aussehen und Verhalten, so dass mit Ihrem aktuellen Ansatz wahrscheinlich etwas nicht stimmt. –
@ GergelyKőrössy, danke; offensichtlich fehlt mir etwas Wissen und muss neu gelesen werden. Wenn ich meine App für die Verwendung von AppCompat ändere, [dies ist der Unterschied] (https://i.imgur.com/aLCVaMJ.jpg). Es sieht wirklich schlecht aus und sogar die Schieberegler fehlen. Hast du einen Tipp, wo ich weiter in meinem Code nachsehen sollte? –
Welche Art von Komponenten sind das? Die appbar-Textfarbe kann behoben werden, indem Sie 'Theme.AppCompat.Light.DarkActionBar' als Ihr Elternelement verwenden. –