it-swarm.com.de

Warum "Schaltflächen in Schaltflächenleisten sollten randlos sein" in Android API Level 15?

Ich entwickle eine Anwendung für Android und habe kürzlich das API-Level-Ziel von 8 auf 15 geändert. Jetzt warnt Eclipse mich, wenn sich die Buttons in Linear Layouts oder Table Rows.

Das gleiche passiert nicht, wenn sich das Button in einem Relative Layout Befindet.

Die Warnung lautet:

Schaltflächen in Schaltflächenleisten sollten randlos sein. benutze style = "? android: attr/buttonBarButtonStyle" (und? android: attr/buttonBarStyle auf dem Parent)

Ich kann die Warnung loswerden, indem ich dem Vorschlag folge oder ihn sogar unterdrücke, aber ich bin interessiert zu wissen, warum das jetzt so ist? Was ist los mit umrandeten Knöpfen?

49
Math

Die randlosen Schaltflächen sind für die Kohärenz des Designs auf der gesamten Android= Plattform. Es wird empfohlen, die Richtlinien zu befolgen, damit der Benutzer das Gefühl hat, dass Ihre App nativ ist und nicht wie ein schmerzender Daumen hervorsteht Es gibt viele Fälle, in denen dies einfach keinen Sinn ergibt, beispielsweise wenn Ihre App dadurch unprofessionell aussieht. In diesem Fall möchten Sie die Warnung möglicherweise deaktivieren.

Um die Warnung auszuschalten, gehen Sie zu den Projekteigenschaften -> Android Lint Preferences. Suchen Sie nach "border" oder "ButtonStyle" und ändern Sie den zu ignorierenden Schweregrad unten rechts.

Sie können dies auch in den Eclipse-Einstellungen für alle Projekte tun.

Für Android Studio-Benutzer:
Datei -> Einstellungen -> Editor -> Inspektionen -> Android Lint. Suche nach "randlos" und deaktiviere oder ändere den Schweregrad.

37
dberm22

Hier ist ein weiterer einfacher Weg, um es loszuwerden.

Der Compiler versucht, Sie aufzufordern, den Stil der Schaltfläche festzulegen. Fügen Sie also einfach den folgenden Stil für den Android Standard-Randlos-Stil hinzu, und der Fehler wird behoben.

<Button
    ...
    style="?android:attr/borderlessButtonStyle"/>

Hier ist der Beweis

enter image description here

16
Fangming

In meinem Fall gab das Hinzufügen dieses Stils zu ALLEN Schaltflächen, die NUR Elemente in einem linearen Layout waren, Schaltflächen ohne Rahmen. Nach dem Hinzufügen von Stil auch zum Layout habe ich Schaltflächen mit kleinen Rändern getrennt bekommen, genau wie in einigen Abschnitten meiner (4.1.2) Android Schnittstelle, zB wie im Dialog Possitive/Negative-Schaltflächen. Es hat richtig funktioniert Standard Holo Buttons sind hässlich, aber mit diesen Styles sehen sie "professionell" aus ;-)

0
Konon