Comment faire pour supprimer le rembourrage autour des boutons dans Android?
Dans mon application Android, j'ai cette mise en page:
<?xml version="1.0" encoding="utf-8" ?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<fragment
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
class="com.google.android.gms.maps.SupportMapFragment"/>
<Button
android:id="@+id/button_back"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:onClick="CloseActivity"
android:padding="0dp"
android:text="@+string/back" />
</LinearLayout>
Dans l'aperçu de l'image sur le téléphone, il ressemble:
Comme vous pouvez le voir sur le bouton dans la zone de fond, il y a quelques rembourrage là.
Comment puis-je me débarrasser de cela, et de laisser le bouton de remplir complètement la zone de fond?
- DATerre la réponse a été correcte pour deux ans. Pouvez-vous marquer comme ça?
- Cette question nécessite la modification d'avoir un meilleur titre. Il est devenu le premier résultat de la Recherche Google whiile il n'a pas vraiment répondre à la question.
Vous devez vous connecter pour publier un commentaire.
Pour moi le problème s'est avéré être minHeight et minWidth sur certains Android thèmes.
Sur le Bouton de l'élément, ajouter:
Ou dans votre bouton de style:
Button
était encore prendre tellement de place, même après avoir réglé sesandroid:background="@null"
. Le fait que leButton
's style par défaut est responsable est une très bonne astuce.Ce n'est pas de rembourrage, c'est l'ombre autour du bouton dans son arrière-plan dessiné. Créer votre propre fond d'écran et il va disparaître.
Une solution de contournement peut être essayer d'utiliser
-ve
valeurs de marges comme suit:Il va faire que l'espace disparaissent. Je veux dire que vous pouvez choisir le
dip
valeur, ce qui en fait disparaître. Il a travaillé pour moi. Espérons que cela fonctionne pour vous.Pour enlever le rembourrage autour de bouton à bascule nous avons besoin de définir minWidth et minHeight 0dp.
android:minWidth="0dp" android:minHeight="0dp"
définir votre drawable fichier à bouton attribut comme:
android:button="@drawable/toggle_selector"
Ci-dessous est mon
toggle_selecter.xml
fichierVous devez utiliser
minHeight
etminWidth
attributs du bouton et assurez-vous de l'utilisation depadding
Je suis nouveau sur android, mais j'ai eu une situation similaire. J'ai fait ce que @Delyan suggéré et également utilisé android:background="@null" dans le fichier xml du fichier de mise en page.
J'ai eu le même problème et il semble que c'est à cause de la couleur d'arrière-plan du bouton. Essayez de changer la couleur de fond d'une autre couleur, par exemple:
et voir si cela fonctionne. Vous pouvez ensuite définir un style si vous souhaitez que le bouton utiliser.
Dans le bouton XML ensemble
android:includeFontPadding="false"
Ce n'est pas un rembourrage, mais ou l'ombre de l'arrière-plan dessiné ou un problème avec le
minHeight
etminWidth
.Si vous voulez toujours la belle ondulation effet, vous pouvez faire votre propre style de bouton à l'aide de la
?attr/selectableItemBackground
:Et de l'appliquer à la touche:
Ma solution a été définie à 0, les insetTop et insetBottom propriétés.
Il ne semble pas être le rembourrage, la marge, ou minheight/largeur.
Réglage
android:background="@null"
le bouton perd sa touche à l'animation, mais il s'avère que le réglage de l'arrière-plan à quoi que ce soit tous les correctifs de la frontière.Je suis actuellement en train de travailler:
Donnez votre bouton d'arrière-plan personnalisée: @drawable/material_btn_blue
Vous pouvez aussi le faire avec
layout_width(height)
paramètres.E. g. Je l'ai supprimé en haut et en bas de l'espace avec
android:layout_height="18dp"
code.Un bouton standard n'est pas censé être utilisé à pleine largeur qui est pourquoi vous avez l'expérience de ce.
Fond
Si vous avez un coup d'oeil à la Matériel de Conception de Bouton - Style vous verrez qu'une touche a un 48dp hauteur de la zone de clic, mais sera affiché comme 36dp de hauteur pour...une raison quelconque.
C'est le fond contour que vous voyez, qui ne couvrira pas l'ensemble de la zone du bouton lui-même.
Il a arrondi les angles et du rembourrage, et est censé être cliquable par lui-même, l'envelopper de son contenu, et de ne pas occuper toute la largeur au bas de votre écran.
Solution
Comme mentionné ci-dessus, ce que vous voulez, c'est un autre fond. Pas un bouton standard, mais un arrière-plan d'un élément sélectionnable avec cette belle effet d'entraînement.
Pour ce cas d'utilisation, il est le
?selectableItemBackground
thème de l'attribut que vous pouvez utiliser pour vos décors (surtout dans les listes).Il va ajouter une plate-forme standard de l'ondulation (ou de la couleur de l'etat liste sur < 21) et utilisez votre thème de couleurs.
Pour votre cas d'utilisation, vous pourriez juste utiliser les éléments suivants:
Il ya aussi pas besoin d'ajouter de la présentation de poids si votre point de vue est le seul et s'étend sur la totalité de l'écran
Si vous avez une autre idée sur ce que votre arrière-plan devrait ressembler que vous avez à créer un drawable-vous, et de gérer la couleur et de l'etat.