En mi aplicación de Android, tengo este diseño:
<?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>
En la vista previa y en el teléfono, se ve así:
Como puede ver en el botón en el área inferior, hay algo de relleno allí.
¿Cómo puedo deshacerme de eso y dejar que el botón llene completamente el área inferior?
Respuestas:
Para mí, el problema resultó ser minHeight y minWidth en algunos de los temas de Android.
En el elemento Button, agregue:
O en el estilo de tu botón:
fuente
Button
todavía ocupaba tanto espacio incluso después de configurarloandroid:background="@null"
. El hecho de que elButton
estilo predeterminado del responsable sea responsable es un muy buen consejo.Mi solución se estableció en 0 las propiedades insetTop e insetBottom.
fuente
Eso no es relleno, es la sombra alrededor del botón en su fondo dibujable. Crea tu propio fondo y desaparecerá.
fuente
Una solución alternativa puede ser tratar de usar
-ve
valores para márgenes como los siguientes:Hará que ese espacio desaparezca. Quiero decir que puedes elegir el
dip
valor apropiado , lo que hace que desaparezca. A mí me funcionó. Espero que funcione para ti.fuente
Para eliminar el relleno alrededor del botón de alternar, necesitamos establecer minWidth y minHeight 0dp.
android:minWidth="0dp" android:minHeight="0dp"
configura tu archivo dibujable con el atributo de botón como
android:button="@drawable/toggle_selector"
Abajo está mi
toggle_selecter.xml
archivofuente
Soy nuevo en Android pero tuve una situación similar. Hice lo que @Delyan sugirió y también usé android: background = "@ null" en el archivo de diseño xml.
fuente
En el conjunto XML del botón
android:includeFontPadding="false"
fuente
Tuve el mismo problema y parece que se debe al color de fondo del botón. Intente cambiar el color de fondo a otro color, por ejemplo:
y ver si funciona. Luego puede definir un estilo si desea que el botón lo use.
fuente
Para quitar el relleno superior e inferior
Para quitar el relleno izquierdo y derecho
fuente
No es un relleno pero o la sombra del fondo dibujable o un problema con el
minHeight
yminWidth
.Si aún desea el agradable efecto dominó, puede crear su propio estilo de botón usando
?attr/selectableItemBackground
:Y aplicarlo al botón:
fuente
No parece ser relleno, margen o altura mínima / ancho. Al configurar
android:background="@null"
el botón pierde su animación táctil, pero resulta que establecer el fondo en cualquier cosa arregla ese borde.Actualmente estoy trabajando con:
fuente
Dele a su botón un fondo personalizado: @ drawable / material_btn_blue
fuente
También puedes hacerlo con
layout_width(height)
parámetros.Por ejemplo, he eliminado el espacio superior e inferior con
android:layout_height="18dp"
código.fuente
Se supone que no se debe usar un botón estándar en todo el ancho, por lo que experimenta esto.
Antecedentes
Si echa un vistazo al Diseño de materiales - Estilo de botón , verá que un botón tiene un área de clic de 48dp de altura, pero se mostrará como 36dp de altura por ... alguna razón.
Este es el contorno de fondo que ve, que no cubrirá toda el área del botón.
Tiene esquinas redondeadas y algo de relleno y se supone que se puede hacer clic solo, envolver su contenido y no abarcar todo el ancho en la parte inferior de la pantalla.
Solución
Como se mencionó anteriormente, lo que quieres es un fondo diferente . No es un botón estándar, sino un fondo para un elemento seleccionable con este agradable efecto dominó.
Para este caso de uso, existe el
?selectableItemBackground
atributo de tema que puede usar para sus fondos (especialmente en listas).Agregará una ondulación estándar de la plataforma (o alguna lista de estado de color en <21) y usará los colores de su tema actual.
Para su caso de uso, puede usar lo siguiente:
Tampoco es necesario agregar pesos de diseño si su vista es la única y se extiende por toda la pantalla
Si tiene una idea diferente sobre cómo debería ser su fondo, debe crear un dibujo personalizado y administrar el color y el estado allí.
fuente
Después de horas de buscar respuestas múltiples, finalmente encontré una solución que no utiliza un elemento diferente,
minHeight
ni manipulaminWidth
, ni siquiera ajustaButton
aRelativeLayout
.La conclusión principal aquí es la configuración del primer plano en lugar del fondo, ya que muchas de las respuestas estipulan. Cambiar el fondo en sí
selectableItemBackground
solo sobrescribirá cualquier cambio que haya realizado en el color / fondo del botón, si corresponde.Cambiar el primer plano te ofrece lo mejor de ambos mundos: deshazte del relleno "invisible" y conserva el diseño de tu botón.
fuente
Puede usar el estilo sin bordes en AppCompatButton como se muestra a continuación. y usa android: fondo con él.
Código de botón
Salida:
fuente