2011-08-08 8 views
36

Tamam, ben doğrusal düzende iki düğme vardır:Ekran boyutundan bağımsız olarak iki düğmeyi aynı genişliğe ayarlayın.

<LinearLayout android:id="@+id/linearLayout1" 
       android:layout_height="wrap_content" 
       android:layout_width="fill_parent"> 
     <Button android:id="@+id/aktiviraj_paket" 
       android:text="Aktiviraj" 
       android:layout_height="40sp" 
       android:layout_width="160sp" 
       android:background="@drawable/my_border3" 
       android:onClick="myClickHandle"></Button> 
     <Button android:id="@+id/deaktiviraj_paket" 
       android:text="Deaktiviraj" 
       android:layout_height="40sp" 
       android:layout_width="fill_parent" 
       android:background="@drawable/my_border3" 
       android:onClick="myClickHandle"> 
     </Button> 
</LinearLayout> 

İşte olay i yaptık ben hem düğmeleri ebeveyn doldurmak kullanırsanız, bunlar birbirlerine bir, bu nedenle ilk düğme 160sp genişliği ve ikinci fill_parent. Bu, 4 inçlik ekranda veya daha küçük olarak gösteriliyorsa, düğmeler aynı boyuttadır, ancak bunu tablette (10 inç) denerseniz, ilk düğme 160sp genişliğinde kalır ve ikinci ekran sonuna kadar uzatılır (çünkü fill_parent). Bunu yapabilir miyim, bu yüzden ekran ne boyutta olursa olsun her iki düğme de büyüklükte olabilir mi? Her düğmeye

cevap

92

kullanın android:layout_weight="1". Her ikisinde de android:layout_width="0dp"'u ayarlayın. Her iki düğmenin de şu anda eşit ağırlıklı olması nedeniyle, artık her birinin ebeveyni genişliğinin yarısı olacak.

Daha buradan öğrenebilirsiniz: http://developer.android.com/guide/topics/ui/layout/linear.html

+0

Teşekkür ederiz. Bu bana yardımcı oldu :) – Goran

+0

Çok teşekkürler ... 1-2 saatimi kurtardım :) – parul

3

seti: Her iki Button s tarihinde

android:layout_weight="0.5" 
android:layout_width="0dp" 
4
Display display=getWindowManager().getDefaultDisplay(); 
    int width=display.getWidth(); 
    btn1.setWidth(width/2); 
    btn2.seTwidth(width/2); 

xml dosyasında şey daha sonra ilk o zaman tam olarak aynı

+2

Bu çözümün bir XML kaynağındaki düzeni tanımlamanın ruhuna aykırı olduğunu düşünüyorum. Che Jami'nin çözümü daha iyi. –

+0

Bu çözüm benim için en iyi xml'den daha iyi. Teşekkür ederim. – Jack

14
bakacağız her cihazda Şimdi hem düğmeye için genişlik yarısını set cihazın genişliğini bulmak Set

Yapmak istediğiniz şey, tüm düğmelerin en geniş düğmenin genişliğini yapmasıdır, ayar ağırlıkları bunu yapmayacaktır. Aksine, bir TableLayout tüm düğmeleri koyabilirsiniz:

<TableLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" > 

     <TableRow 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" > 

      <Button 
       android:id="@+id/button1" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="@string/short_text" /> 
     </TableRow> 

     <TableRow 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" > 

      <Button 
       android:id="@+id/button2" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="@string/enter_manually" /> 
     </TableRow> 
    </TableLayout> 

Bu düzen 2 düğmeler, diğer üst üste, aynı genişliğe gösterecektir. Yatay olarak ayarlanmış yönde: aşağıdakileri içeren lineer düzeni robot olmalıdır düzeninde layout_weight = "1":

+0

Bu cevap sert –

+0

üzerinde uyuyor. Hava durumuyla ilgili takdir görmedim ya da alay ettim! – Sameer

+0

Ağırlık özniteliğini kullanmak yerine bu yöntemi kullanmayı tercih ediyorum. Bu kesinlikle çok azdır. – TheLearner

1
android:layout_weight="0.5" 
android:layout_width="0dp 

bu

0

ayarlayın android çalışıyor.

android: Ve sonra iç düğmeler aşağıdaki olmalıdır layout_width = "0DP"

android: layout_weight = "0.5"

0
<LinearLayout 
    android:id="@+id/layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="horizontal" > 

    <Button 
     android:id="@+id/button1" 
     android:layout_width="match_parent" 
     android:layout_height="40dp" 
     android:layout_weight="1" 
     android:text="One" /> 

    <Button 
     android:id="@+id/button2" 
     android:layout_width="match_parent" 
     android:layout_height="40dp" 
     android:layout_weight="1" 
     android:text="Two" /> 
</LinearLayout> 

These is the example for equal size buttons for side by side can be done from above code

android:layout_weight 

için kullanılır LinearLayout'un her çocuğuna düğmeler için alan veya eşit miktardaki her şeyi atayın.

Not: Sadece doğrusal düzende çalışır.

+0

Lütfen cevabınıza daha fazla yorum ekleyin. Ne yaptın? Cevabınız neden doğru? Neyi düzeltdin? Lütfen cevabınıza bakın ve daha fazla ayrıntı ekleyin.Teşekkürler. – cramopy

+0

tamam @cramopy hala ayrıntılı bir açıklama istiyorsan söyle. –