1

Ich habe Stack Overflow gesucht, aber es gibt keinen Link für genau das gleiche Problem.openOptionsMenu funktioniert nicht auf Lollipop Tablet mit minSdkVersion 16

Die App, an der ich arbeite, ist eine Legacy-App. Diese App muss das Optionsmenü durch Antippen eines Bildsymbols öffnen. Die App verwendet keine Aktionsleiste. Diese Funktion funktionierte auf allen Geräten einwandfrei, bis ich die minSdkVersion auf 16 form 8 erhöhte. Da ich minSdkVersion auf 16 gesetzt habe, wird das Optionsmenü auf Lollipop-Tablets nicht geöffnet. Es funktioniert gut auf Lollipop Smartphone obwohl.

Was ist das Problem hier? Gibt es eine Problemumgehung?

+0

Was ist Ihre 'targetSdkVersion'? – CommonsWare

+0

Ich habe es nicht eingestellt. Setzen Sie minSdkVersion nur auf 16. Auch wenn ich es auf 10 zurücksetze, funktioniert es, aber es funktioniert nicht, wenn ich es auf etwas mehr als 10 setze. – LoveForDroid

+0

"Ich habe es nicht gesetzt" - das macht überhaupt keinen Sinn. Setzen Sie es auf 8 und sehen Sie, ob das hilft. – CommonsWare

Antwort

2

Immer haben Sie eine targetSdkVersion für Ihr Projekt definiert. Das sagt Android "hey, ich dachte an diese API-Ebene, als ich diesen Code schrieb". Android wird dies für ausgewählte Bits der Vorwärtskompatibilität verwenden, um das Laufzeitverhalten auf neueren Geräten etwas näher an das zu ändern, was Sie damals dachten.

Tablets nie wirklich das Optionsmenü verwendet; Ab Android 3.0 wurde das frühere Optionsmenü in die Aktionsleiste migriert. In Abwesenheit von targetSdkVersion, wird Android offensichtlich behandeln die minSdkVersion als auch die targetSdkVersion. Und mit einem/targetSdkVersion von 16 sind Sie fest in der Welt der Action Bars.

Einstellung Ihre targetSdkVersion-8 sollte zurückkehren unabhängig von Änderungen wurden von Ihrem minSdkVersion zu springen angewendet wird 16.

jedoch schließlich etwas wird Ihre Hand zu zwingen, Ihre targetSdkVersion auf einen höheren Wert zu erhöhen. Gehen Sie nicht davon aus, dass Sie für immer mit einem targetSdkVersion von 8 bleiben können. Entweder:

  • Migrieren Sie Ihre Benutzer auf der Aktionsleiste oder
  • Implementieren Sie Ihre eigenen Optionen Menü Doppelgänger oder
  • Planen Sie die App in ihrer Gesamtheit mit einer modernen Umsetzung zu ersetzen oder
  • Plan Aufgabe der App
+1

Nochmals, nette Antwort. – azizbekian

Verwandte Themen