2013-04-01 14 views
5

sto provando a fare un layout lineare con 5 pulsanti posizionati orizzontalmente con uguale spaziatura, ma tutte le dimensioni dei pulsanti (larghezza) dovrebbero essere solo 40dp.Allinea pulsanti orizzontalmente con uguale spaziatura in linearlayout

ho provato questo:

<LinearLayout android:id="@+id/button_layout" 
        android:background="#DCE1DC" 
        android:orientation="horizontal" 
        android:weightSum="5" 
        android:layout_width="fill_parent" 
        android:layout_height="70dip"> 

     <Button  android:id="@+id/button_A" 
        android:layout_weight="1" 
        android:layout_height="60dp" 
        android:layout_width="0dp" 
        android:layout_gravity="center_vertical" 
        android:layout_marginLeft="30dp"/> 

     <Button  android:id="@+id/button_B" 
        android:layout_weight="1" 
        android:layout_height="60dp" 
        android:layout_width="0dp" 
        android:layout_gravity="center_vertical" 
        android:layout_marginLeft="30dp"/> 

     <Button  android:id="@+id/button_C" 
        android:layout_weight="1" 
        android:layout_height="60dp" 
        android:layout_width="0dp" 
        android:layout_gravity="center_vertical" 
        android:layout_marginLeft="30dp"/> 

     <Button  android:id="@+id/button_D" 
        android:layout_weight="1" 
        android:layout_height="60dp" 
        android:layout_width="0dp" 
        android:layout_gravity="center_vertical" 
        android:layout_marginLeft="30dp"/> 

     <Button  android:id="@+id/button_E" 
        android:layout_weight="1" 
        android:layout_height="60dp" 
        android:layout_width="0dp" 
        android:layout_gravity="center_vertical" 
        android:layout_marginRight="30dp" 
        android:layout_marginLeft="30dp"/> 

    </LinearLayout> 

il suo lavoro, ma ho bisogno di pulsanti larghezza ad essere più piccoli, come raggiungere questo obiettivo?

+0

possibile duplicato di [Android: come rendere tutti gli elementi all'interno di LinearLayout delle stesse dimensioni?] (Http://stackoverflow.com/questions/1177020/android-how-to-make-all-elements-inside-linearlayout-same-size) –

risposta

1

Per ciascun pulsante, cambiare questo:

android:layout_width="0dp" 

A tal:

android:layout_width="40dp" 
+0

sì funziona ma la larghezza cambia da dispositivo a dispositivo, voglio dire se è un tablet quindi la larghezza se il pulsante è in aumento – Goofy

+0

Sì, questo è normale. Android cambia la larghezza in base alla densità dello schermo del dispositivo. Questo a causa di "dp" = (Density Independent Pixel, alias "dip"). Se si passa a "px", le dimensioni rimarranno lo stesso numero di pixel, ma ridotte dimensioni sul tablet. Puoi specificare la larghezza totale "match_parent" e quindi le tue due colonne saranno uniformi per riempire lo schermo in modo uniforme a causa del "peso". –

1

Credo che questo risolverà la vostra richiesta ...

come dici che si sta utilizzando LinearLayout poi puoi fare qualcosa come ...

<LinearLayout 
android:layout_width="match_parent" 
android:layout_height="yourheight" 
android:orientation="horizontal"> 
<Button 
android:id="@+id/button_name" 
android:weight="1" 
android:layout_height="wrap_content" 
android:layout_width="match_parent" /> 

<Button 
android:id="@+id/button_name" 
android:weight="1" 
android:layout_height="wrap_content" 
android:layout_width="match_parent" /> 

//add as many buttons as you want 


<Button 
android:id="@+id/button_name" 
android:weight="1" 
android:layout_height="wrap_content" 
android:layout_width="match_parent" /> 
</LinearLayout> 
+0

se è un tablet, allora la larghezza del pulsante aumenterà? – Goofy

+0

funziona bene per tutti i telefoni ... ma con i tablet penso che dovrebbe ... non essere ancora implementato su uno ... fare un tentativo ... e dire se funziona –

+0

e qui hai menzionato l'altezza del lineare layout, voglio che la larghezza del pulsante sia più piccola – Goofy

Problemi correlati