2012-02-26 10 views
13

Devo creare la mia barra degli strumenti personalizzata nell'applicazione Android. Ora è il seguente: enter image description hereRimuovere lo spazio tra i pulsanti in LinearLayout (Android)

Quindi si vedono gli spazi tra i pulsanti. Ho provato a mettere margine negativo/padding ai pulsanti, ma lo spazio non è scomparso.

Ecco codice del layout:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <ListView 
     android:id="@+id/routes_list" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_weight="0.5"> 
    </ListView> 

    <TableRow 
     android:id="@+id/toolbar" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_margin="0dp" 
     android:padding="0dp" > 

     <Button 
      android:id="@+id/btn_routes" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_margin="0dp" 
      android:layout_weight="0.2" 
      android:layout_marginRight="-10dp" 
      android:layout_marginLeft="-10dp" 
      android:text="@string/routes" 
      android:textSize="10dp" /> 

     <Button 
      android:id="@+id/btn_places" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_margin="0dp" 
      android:layout_weight="0.2" 
      android:layout_marginRight="-10dp" 
      android:layout_marginLeft="-10dp" 
      android:textSize="10dp" 
      android:text="@string/places" /> 

     <Button 
      android:id="@+id/btn_events" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_margin="0dp" 
      android:layout_weight="0.2" 
      android:layout_marginRight="-10dp" 
      android:layout_marginLeft="-10dp" 
      android:textSize="10dp" 
      android:text="@string/events" /> 

     <Button 
      android:id="@+id/btn_about" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_margin="0dp" 
      android:layout_weight="0.2" 
      android:layout_marginRight="-10dp" 
      android:layout_marginLeft="-10dp" 
      android:text="@string/about" 
      android:textSize="10dp" /> 

    </TableRow> 

</LinearLayout> 

Come rimuovere lo spazio tra i pulsanti?

+0

forse si potrebbe controllare questo - http://stackoverflow.com/questions/2277732/how-to-get-rid-of-the-extra-gap-between-a-button-and-other-views –

+0

L'idea è di utilizzare i ImageButtons con lo stesso colore di sfondo .. – hovanessyan

risposta

8

Ecco una soluzione. Sembra che mi sia affrettato a postare una domanda qui.

<?xml version="1.0" encoding="utf-8"?> 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:orientation="vertical" > 

    <ListView 
     android:id="@+id/routes_list" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_weight="0.5"> 
    </ListView> 

    <TableRow 
     android:id="@+id/toolbar" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginBottom= "-7dp"> 

     <Button 
      android:id="@+id/btn_routes" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_weight="0.2" 
      android:layout_marginRight="-4.5dp" 
      android:layout_marginLeft="-5dp" 
      android:text="@string/routes" 
      android:textSize="10dp" /> 

     <Button 
      android:id="@+id/btn_places" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_weight="0.2" 
      android:layout_marginRight="-4.5dp" 
      android:layout_marginLeft="-4.5dp" 
      android:textSize="10dp" 
      android:text="@string/places" /> 

     <Button 
      android:id="@+id/btn_events" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_weight="0.2" 
      android:layout_marginRight="-4.5dp" 
      android:layout_marginLeft="-4.5dp" 
      android:textSize="10dp" 
      android:text="@string/events" /> 

     <Button 
      android:id="@+id/btn_about" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_weight="0.2" 
      android:layout_marginRight="-4dp" 
      android:layout_marginLeft="-4.5dp" 
      android:text="@string/about" 
      android:textSize="10dp" /> 

    </TableRow> 

</LinearLayout> 

Risultato: enter image description here

+6

Non penso che funzioni su tutti i dispositivi. –

+0

Risposta non valida, con uno stile di pulsante diverso. I valori saranno diversi. – xmen

0

provare questo

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <ListView 
     android:id="@+id/routes_list" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_weight="0.5"> 
    </ListView> 

    <TableRow 
     android:id="@+id/toolbar" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_margin="0dp" 
     android:padding="0dp" > 

     <Button 
      android:id="@+id/btn_routes" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:text="@string/routes" 
      android:textSize="10dp" /> 

     <Button 
      android:id="@+id/btn_places" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:textSize="10dp" 
      android:text="@string/places" /> 

     <Button 
      android:id="@+id/btn_events" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:textSize="10dp" 
      android:text="@string/events" /> 

     <Button 
      android:id="@+id/btn_about" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:text="@string/about" 
      android:textSize="10dp" /> 

    </TableRow> 

</LinearLayout> 
0
I won't suggest to go for -ve margins.. 

configurazione Piuttosto qualche immagine di sfondo per pulsante.

alcuni punti importanti: -

  1. L'immagine di sfondo per sé non devono contenere alcun spazio bianco alle frontiere.
  2. È necessario creare un file di selezione per quel pulsante dopo aver fornito lo sfondo, in cui descriverai quale immagine mostrare in diversi stati del pulsante allo stesso modo selected, focused ecc. Altrimenti non sarai in grado di vedere gli effetti che appare di default (come il tasto d'argento e quando si fa clic diventa arancione)

Solutions: -

  1. Come creare un selettore è possibile fare riferimento this lik
  2. .210
  3. Ho usato this button in my case

mio risultato: -

enter image description here

-2

aggiungere questo due linee in tutta la pulsante e utilizzare il layout lineare, invece di TableLayout con orientamento orizzontale.

android:layout_width="0dp" 
android:button_weight="1" 
19

provare a cambiare il colore del pulsante, perché l'interfaccia di default del pulsante che è nativo di Android è in realtà più piccolo di sua dimensione, ed è il centro-montata per farlo sembrare cool.

Cambia lo sfondo in nero o qualcosa e vedrai le dimensioni reali del pulsante.

android: background = "# 000"

+1

Questa dovrebbe essere la risposta accettata. Non sembra che ci sia un margine reale tra il pulsante e gli altri pulsanti, solo lo sfondo che è applicato ha un po 'di riempimento su di esso. – CodyEngel

+0

Wow, davvero .. Ho passato un po 'di tempo a capire perché non potevo liberarmi dello spazio/margine tra i Pulsanti nel mio Gridview, cambiando lo sfondo come hai detto, che non c'era davvero spazio/margine tra di loro più, grazie per questa risposta. –

+1

I pulsanti fanno uso di una 9 patch Drawable che fa sembrare che ci sia un margine extra attorno ad esso. –

0

Semplicemente, Si può fare l'override lo sfondo predefinito con ha una forma arrotondata e il margine:

<Button 
      android:id="@+id/button_1" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      <!--Replace the following color with any other color or drawable--> 
      android:background="@android:color/white" 
      android:text="@string/button1_text" 
      android:textColor="@android:color/black" /> 
Problemi correlati