2011-11-12 11 views
13

Acabo de encontrar que no puedo eliminar el espacio entre 2 botones incluso si configuro layout_marginRight y layout_marginLeft como a continuación. Pero tiene sentido si configuro un espacio más grande, como 10 dp. ¿Alguna manera de resolverlo?Android: cómo hacer que no quede espacio entre 2 botones en una distribución lineal horizontal

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:orientation="horizontal" android:padding="0dp" 
    android:layout_height="wrap_content" android:gravity="fill_horizontal" android:layout_margin="0dp"> 
    <Button android:id="@+id/LocationTitleButton" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_marginRight="0dp" 
        android:layout_gravity="center_vertical" 
        android:layout_weight="1" 
        android:ellipsize="end" 
        android:gravity="center_vertical" 
        android:scrollHorizontally="true" 
        android:singleLine="true" 
        android:text="Add location" 
        android:textStyle="bold" /> 
       <Button android:textColor="#FF000000" 
        android:layout_weight="0" 
        android:id="@+id/AddLocationButton" 
        android:text="Search" 
        android:gravity="center_vertical" 
        android:layout_gravity="center_vertical" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_marginLeft="0dp" /> 
</LinearLayout> 
+1

Debe establecer layout_width de "0dip" para cada botón. Espero que ayude. –

+0

no funciona, haré desaparecer el botón derecho ya que su peso es 0. –

+0

¿Es necesario establecer el peso del segundo botón en 0? –

Respuesta

38

Mire Bryan's answer. Con mi respuesta, ambos botones se superponen. La respuesta de Bryans muestra el tamaño real de los botones.

vieja respuesta:

acaba de establecer la android:layout_marginRight del primer botón a "-8dip" o incluso más. Que el espacio entre los dos botones se hará más pequeño.

+0

es realmente complicado pero funciona, ¡gracias! –

+5

se deben evitar los márgenes negativos. – Muzammil

+2

@Muzammil: ¿Puede dar una explicación de su opinión? –

1

Deberá configurar android:layout_marginRight="0dip" y deberá eliminar el relleno con android:paddingRight="0dip" para el otro botón, esto tiene que cambiarse a los valores de la izquierda. Supongo que olvidaste que cada elemento de Android generalmente tiene un relleno añadido por defecto. En general, es una buena idea, pero si desea eliminarla, este es el camino.

+0

Lo intenté, no funciona para eliminar el espacio entre 2 botones. El relleno es para el espacio dentro del botón. –

2

Puede cambiar a RelativeLayout. No hay espacio en ese diseño.

0

Creo que puede deshacerse del espacio si utiliza TableLayout en su lugar. Y puede establecer valores negativos para el margen, si todavía está agregando un espacio predeterminado entre ellos.

23

Intente cambiar el color del botón, porque la interfaz predeterminada del botón que es nativo de Android es realmente más pequeña que su tamaño, y está en el centro para que se vea bien.

Cambia el fondo a negro o algo así y verás el tamaño real del botón.

android:background="#000" 
+3

Esto debería ser aceptado como respuesta. La respuesta de Franziskus realmente no es una buena práctica. – Drag0

0

Uso "layout_marginLeft" & "layout_marginRigh" para llenar el botón fondo

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="0dp" 
    android:layout_weight="1" 
    android:gravity="bottom" 
    android:orientation="horizontal" > 

    <Button 
     android:id="@+id/imageButton1" 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_marginBottom="-5dp" 
     android:layout_marginLeft="-3dp" 
     android:layout_marginRight="-4dp" 
     android:layout_weight="1" 
     android:drawableTop="@drawable/create_mail" /> 

    <Button 
     android:id="@+id/bItem" 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_marginBottom="-5dp" 
     android:layout_marginLeft="-4dp" 
     android:layout_marginRight="-4dp" 
     android:layout_weight="1" 
     android:drawableTop="@drawable/email_receive3" 
     android:onClick="OnClick" 
     android:text="@string/inbox" /> 


    <Button 
     android:id="@+id/imageButton2" 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_marginBottom="-5dp" 
     android:layout_marginLeft="-4dp" 
     android:layout_marginRight="-3dp" 
     android:layout_weight="1" 
     android:drawableTop="@drawable/email_trash" /> 


</LinearLayout> 
Cuestiones relacionadas