web-dev-qa-db-fra.com

Pourquoi "Les boutons dans les barres de boutons doivent être sans bordure" dans Android API Level 15?

Je développe une application pour Android et j'ai récemment changé la cible de niveau d'API de 8 à 15, et maintenant Eclipse m'avertit lorsque les Buttons sont à l'intérieur Linear Layouts ou Table Rows.

La même chose ne se produit pas lorsque le Button est dans un Relative Layout.

L'avertissement dit:

Les boutons des barres de boutons doivent être sans bordure; utilisez style = "? android: attr/buttonBarButtonStyle" (et? android: attr/buttonBarStyle sur le parent)

Je peux me débarrasser de l'avertissement en suivant la suggestion ou même en la supprimant, mais je suis curieux de savoir pourquoi cela maintenant? Quel est le problème avec les boutons bordés?

49
Math

Les boutons sans bordure sont destinés à la cohésion de la conception sur la plate-forme Android. Il est recommandé de suivre les instructions afin que l'utilisateur estime que votre application est native et ne dépasse pas comme un pouce endolori, mais là il y a de nombreux cas où cela n'a tout simplement pas de sens, comme si cela rend votre application non professionnelle. Si tel est le cas, vous pouvez désactiver l'avertissement.

Pour désactiver l'avertissement, accédez aux propriétés du projet -> Android Lint Preferences. Recherchez "border" ou "ButtonStyle" et modifiez la gravité à ignorer en bas à droite.

Vous pouvez également le faire dans les préférences Eclipse pour tous les projets.

Pour Android Utilisateurs de Studio:
Fichier -> Paramètres -> Éditeur -> Inspections -> Android Lint. Recherchez "sans bordure" et décochez ou modifiez la gravité.

37
dberm22

Voici un autre moyen simple de s'en débarrasser.

Le compilateur essaie de vous dire de définir le style du bouton. Il suffit donc d'ajouter le style suivant pour le style Android par défaut sans bordure et l'erreur disparaîtra.

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

Voici la preuve

enter image description here

16
Fangming

Dans mon cas, l'ajout de ce style à TOUS les boutons, qui n'étaient que des éléments dans une disposition de ligne, a donné des boutons sans bordure. Après avoir également ajouté du style à la mise en page, j'ai obtenu des boutons séparés avec de petits bords, comme dans certains épements de mon (4.1.2) Android interface, par exemple, comme dans la boîte de dialogue des boutons positifs/négatifs). Les boutons Holo standard sont moches mais avec ce style ils ont l'air "professionnels" ;-)

0
Konon