2014-11-06 41 views
0

我嘗試創建4個按鈕,具有相同的寬度和高度。 現在我將寬度設置爲0dp並將weight設置爲「1」,這使我可以用相同的widht打亂所有按鈕,但現在我需要設置這些元素的相等高度,不知道如何去做。如何創建矩形按鈕並擾動它horizintaly

請幫我解決這個問題。

下面我的XML佈局:

<LinearLayout 
      android:orientation="horizontal" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_centerHorizontal="true" android:id="@+id/lin_layout"> 
     <Button 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:text="VK" 
       android:id="@+id/btn1" 
       android:layout_weight="1" 
       android:layout_marginRight="5dp"/> 
     <Button 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:text="ЮД" 
       android:id="@+id/btn2" 
       android:layout_weight="1" 
       android:layout_marginLeft="5dp" 
       android:layout_marginRight="5dp"/> 
     <Button 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:text="KE" 
       android:id="@+id/btn3" 
       android:layout_weight="1" 
       android:layout_marginLeft="5dp" 
       android:layout_marginRight="5dp"/> 
     <Button 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:background="@drawable/contact_bg" 
       android:id="@+id/btn4" 
       android:text="MI" 
       android:layout_weight="1" android:layout_marginLeft="5dp"/> 
    </LinearLayout> 
+1

只是提供一個DP尺寸值作爲母公司的LinearLayout的高度並設置每個按鈕的高度,以match_parent – Endor 2014-11-06 08:35:33

+0

我不能這樣做,因爲不知道哪個寬度不同的設備上。 – berliozz 2014-11-06 09:28:27

回答

0

但是這取決於對同一事物的高度,如果你想要的按鈕全部在同一高度相對於線性佈局剛剛成立android: layout_height = "match_parent"和按鈕將會高達線性佈局

例如

<LinearLayout 
    android:id="@+id/lin_layout" 
    android:layout_width="match_parent" 
    android:layout_height="100dp" 
    android:orientation="horizontal" > 

    <Button 
     android:id="@+id/btn1" 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="1" 
     android:text="VK" /> 

    <Button 
     android:id="@+id/btn2" 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="1" 
     android:text="ЮД" /> 

    <Button 
     android:id="@+id/btn3" 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="1" 
     android:text="KE" /> 

    <Button 
     android:id="@+id/btn4" 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="1" 
     android:text="MI" /> 
</LinearLayout> 
0

我的意思是,按鈕的那樣的高度必須等於它的寬度。見圖片:

enter image description here

+0

我認爲正確的解決方法就是使用所有的代碼風格輸出。 – berliozz 2014-11-06 09:35:49

0

在我的經驗,這是不可能做你的XML問什麼完全,我怕你會動態地做到這一點。

首先更改所有按鈕的高度,以android:layout_height="match_parent"

<LinearLayout 
     android:orientation="horizontal" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" android:id="@+id/lin_layout"> 
    <Button 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:text="VK" 
      android:id="@+id/btn1" 
      android:layout_weight="1" 
      android:layout_marginRight="5dp"/> 
    <Button 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:text="ЮД" 
      android:id="@+id/btn2" 
      android:layout_weight="1" 
      android:layout_marginLeft="5dp" 
      android:layout_marginRight="5dp"/> 
    <Button 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:text="KE" 
      android:id="@+id/btn3" 
      android:layout_weight="1" 
      android:layout_marginLeft="5dp" 
      android:layout_marginRight="5dp"/> 
    <Button 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:background="@drawable/contact_bg" 
      android:id="@+id/btn4" 
      android:text="MI" 
      android:layout_weight="1" android:layout_marginLeft="5dp"/> 
</LinearLayout> 

,又重新獲得LinearLayout的寬度,設置它的高度1/4的它的寬度。

lin_layout.getLayoutParams().height = lin_layout.getLayoutParams().width/4; 
+1

注意op已經在按鈕周圍設置邊距,所以按鈕的寬度應該用作它們的高度,而不是使用屏幕寬度的四分之一。 – Endor 2014-11-07 01:12:28