OK / Abbrechen Schaltflächen Reihenfolge in ICS

8

Seit SDK 14 ist die bevorzugte Reihenfolge "Abbrechen" / "OK" im Gegensatz zu "OK / Abbrechen". Ich werde mich NICHT in die Debatte einmischen, ob es eine gute oder schlechte Idee ist, das ist nicht das Thema meiner Frage.

Die Sache ist, dass das ADK Sie ermutigt, die neue Bestellung für Geräte mit SDK & gt; = 14 zu verwenden, indem Sie den folgenden Lint geben

  

Layout verwendet die falsche Tastenreihenfolge für API & gt; = 14: Erstellen Sie ein   Layout-v14 / layout.xml-Datei mit umgekehrter Reihenfolge: Abbrechen   Button sollte auf der linken Seite sein (war "@ string / send | Cancel", sollte sein   "Abbrechen | @ string / send")

OK, ich bleibe dabei, das ist kein Problem für mich und ich verstehe, dass ich den Rat befolgen sollte, um die Benutzer nicht zu nerven.

Aber hier ist das Ding ... Auf meinem Samsung Galaxy S II, das auf ICS läuft, scheint die Systemschnittstelle selbst nicht der neuen Reihenfolge zu folgen. Hier sind ein paar Screenshot-Beispiele:

Die Reihenfolge ist die alte. Beachten Sie, dass ich die offizielle ICS-Version für mein Telefon verwende (kein benutzerdefiniertes ROM). Und die Reihenfolge ist die gleiche auf meinem Galaxy Tab 2 (auch offizielle ICS läuft). Bei einigen Dialogen ist die Reihenfolge korrekt (Abbrechen / OK) Der einzige Unterschied, den ich sehe, ist das Thema (die Dialoge, die das Holo-Thema verwenden, haben die neue Reihenfolge; die anderen, die alte Reihenfolge). Hier ist ein Screenshot eines DatePickerDialogs von den Einstellungen (um das Systemdatum einzustellen) und von meiner App mit Holo:

Das ist ziemlich beunruhigend. Es sieht so aus, als ob die Reihenfolge der Schaltflächen themenbezogen und nicht versionsbezogen ist. Oder folgt nur Samsung nicht den Designmustern von Android?

Ich denke, dass Aktivitäten (wenn sie OK / Cancel-Tasten haben) auch der gleichen Reihenfolge folgen sollten. Und hier, wieder, auf meinem Handy hat die Aktivität Ereignis erstellen des Kalenders die falsche Reihenfolge (Und die Aktivität verwendet kein Loch-Thema):

Ich werde das Holo-Thema in meiner App sowieso für Geräte aus Honeycomb verwenden, daher werde ich die neue Bestellung für SDK & gt; = 14 beibehalten. Ich würde das gerne verstehen.

Danke.

    
Benoît Bouré 03.10.2012, 08:59
quelle

4 Antworten

5

Ja, der Button Swap ist ziemlich irritierend und ich höre am Ende mehr als die OK Taste. Aber das kannst du tun. Entweder erstellen Sie ein eigenes benutzerdefiniertes Dialogfeld, so dass Sie die Kontrolle darüber behalten, welcher Knopf wo hinkommt, und lassen Sie den Benutzer durch Lesen herausfinden. Einzige Sache, die wir als Programmierer tun müssen, ist so, dass wenn Abbrechen gedrückt wird, es tatsächlich bricht und nicht OKAY! Um mehr Klarheit darüber zu bekommen, warum Ok-Cancel getauscht wurde, war dies eine Patentverletzung mit Apple zu vermeiden, da diese Ok-Cancel ebenfalls folgen. Ein Wechsel von Cancel-Ok bedeutet also keine Verletzung (Dumm, aber spart Google Millionen!)

    
Royston Pinto 03.10.2012 09:04
quelle
3

Samsung hat diese merkwürdige Idee, das Touchwiz-Design von Android 2 auf Android 4.x-Geräten zu halten. Es ist die nervigste Sache an Samsung 4.x ROMs für mich persönlich, da das ICS / JB UI viel schöner ist. Am auffälligsten ist es in Dialogen (mit der 2.x-Tastenanordnung, wie du es erwähnt hast) und Tabs (mit 2.x-Tabs anstelle der viel schöneren 4.x-Tabs).

Selbst die neueren 4.x-Geräte wie das SGS3 (nehmen wir an, dass das Note 2 auch gerade veröffentlicht wurde) haben immer noch diese lächerliche Portierung von Android 2 UI-Komponenten.

Ich vermute, dass dies für Endbenutzer kein Problem ist, da es für Entwickler, die viele Geräte haben, ärgerlich ist und die Unterschiede bemerkt.

    
Philio 03.10.2012 09:29
quelle
2

Ja, die Reihenfolge der Schaltflächen ist thematisch und nicht versionsbezogen. Im Unterschied zum Layout "alert_dialog.xml" setzt "alert_dialog_holo.xml" "button1" (positiv) nach rechts und "button2" (negativ) nach links.

Das Layout wird von com.android.internal.app.AlertController:

bestimmt %Vor%

Das Attribut des Themes "alertDialogStyle" bezieht sich auf einen "AlertDialog" -Stil, der eine Reihe von Attributen beschreibt, die das Design eines AlertDialogs beschreiben, das Attribut "layout" verweist auf eine Layout-Ressource, ansonsten wird layout / alert_dialog verwendet.

In Android-Quelle können Sie sehen, dass "Theme.Holo" verwendet "AlertDialog.Holo" die wiederum auf "Layout / alert_dialog_holo" verweist, während "Theme" "AlertDialog" verwendet, die kein Layout enthält und standardmäßig auf den Wert des Codes .

themes.xml:

%Vor%

styles.xml:

%Vor%

Das tatsächlich verwendete Thema scheint durch Gerätevorgaben definiert zu sein.

themes_device_defaults.xml:

%Vor%

styles_device_defaults.xml:

%Vor%

Ich denke, Samsung stellt einfach etwas anderes hier ein, um ihr Aussehen und Gefühl zu erhalten, wie es Philio beschrieben hat.

    
marx 05.02.2013 11:27
quelle
0

Vielleicht ist es der Samsung, der Änderungen am ROM für Galaxy S2 vorgenommen hat. Ich habe das Gefühl, dass sie ein bisschen notorisch sind, wenn es um die Anpassung geht. In der Vergangenheit hatte ich auch einige Probleme mit Kern-Bluetooth-Operationen in ihren ROMs für SGS2, xCover usw. Ich wäre also nicht überrascht, wenn es nur in Samsung-Geräten passiert:)

    
waqaslam 03.10.2012 09:20
quelle