2013-04-01 5 views
5

Próbuję utworzyć liniowy układ z 5 przyciskami poziomo rozmieszczonymi w równych odstępach, ale wszystkie rozmiary przycisków (szerokość) powinny wynosić tylko 40dp.Align Buttons poziomo z równym odstępem w Linelaylayout

próbowałem to:

<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> 

swoją pracę, ale muszę przyciski szerokość być mniejsze, jak do współpracy to?

+0

możliwy duplikat [systemu Android: jak zrobić wszystkie elementy wewnątrz LinearLayout tego samego rozmiaru?] (Http://stackoverflow.com/questions/1177020/android-how-to-make-all-elements-inside-linearlayout-same-size) –

Odpowiedz

1

Dla każdego przycisku, zmień to:

android:layout_width="0dp" 

do tego:

android:layout_width="40dp" 
+0

tak działa, ale szerokość zmienia się z urządzenia na urządzenie, mam na myśli, jeśli jest to tablet, a następnie szerokość, jeśli przycisk wzrasta – Goofy

+0

Tak, należy się tego spodziewać. Android zmienia szerokość w zależności od gęstości ekranu urządzenia. Wynika to z "dp" = (niezależny od gęstości pikseli, znany również jako "dip"). Jeśli zmienisz na "px", rozmiar pozostanie taką samą liczbą pikseli, ale będzie mniejszy na tablecie. Możesz podać pełną szerokość "match_parent", a następnie dwie kolumny będą równomiernie wypełniać ekran ze względu na "wagę". –

1

myślę, że to rozwiąże zapytanie ...

jak mówisz używasz Linearlayout następnie możesz zrobić coś takiego ...

<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

jeśli jest to tablet, to zwiększy się szerokość przycisku? – Goofy

+0

działa dobrze na wszystkich telefonach ... ale przy tabletach uważam, że powinien ... nadal nie zaimplementowany na jednym ... wypróbuj ... i powiedz, czy zadziałało –

+0

i tutaj wspomniałeś o wysokości liniowej układ, chcę szerokość przycisku być mniejsza – Goofy