2013-05-28 65 views
0

我在android:layout_weight中使用。 它是有用的工具。當我在android:layout_weight中使用時,按鈕被拉伸:

但是,當我使用他時,這是個問題。所有按鈕都是線性佈局。 我想要那些按鈕將在它們之間的相同空間。但在實際的按鈕拉伸所有的佈局。

它是可能性使用layout_weight的平等空間,但沒有拉伸按鈕的所有佈局?

我想也許把任何按鈕,線性佈局,並與layout_weight他們使用或也許在保證金使用(但是這在所有的屏幕尺寸沒有動態地分配)

<LinearLayout 
    <LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" 
    android:layout_gravity="center" 
    android:weightSum="5"> 

    <Button 
     android:id="@+id/patient_p1_button" 
     android:layout_width="fill_parent" 
     android:layout_height="0dip" 
     android:layout_gravity="center" 
     android:layout_weight="1" 
     android:background="@drawable/patient_p1_selector" /> 

    <Button 
     android:id="@+id/patient_p2_button" 
     android:layout_width="fill_parent" 
     android:layout_height="0dip" 
     android:layout_gravity="center" 
     android:layout_weight="1" 
     android:layout_marginBottom="20dip" 
     android:background="@drawable/p2_selector" /> 

    <Button 
     android:id="@+id/patient_p3_button" 
     android:layout_width="fill_parent" 
     android:layout_height="0dip" 
     android:layout_gravity="center" 
     android:layout_weight="1" 
     android:background="@drawable/p3_selector" /> 

    <Button 
     android:id="@+id/patient_data_main_screen_medicines_button" 
     android:layout_width="fill_parent" 
     android:layout_height="0dip" 
     android:layout_gravity="center" 
     android:layout_weight="1" 
     android:background="@drawable/medication_selector" /> 

    <Button 
     android:id="@+id/patient_p4_button" 
     android:layout_width="fill_parent" 
     android:layout_height="0dip" 
     android:layout_gravity="center" 
     android:layout_weight="1" 
     android:background="@drawable/p4_selector" /> 
</LinearLayout> 

我現在在按鈕中使用android:layout_marginBottom,它適用於我。但我不確定這是否正確。

+0

發佈佈局 – Blackbelt

回答

0

我找到解決的辦法:

我在這樣的虛擬視圖中使用,當我只在虛擬視圖layout_weight使用:(在我的情況的TextView )

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:text_view_element="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/patient_data_main_screen" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    > 

    <RelativeLayout 
     android:id="@+id/main_container_main_screen" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_marginRight="10dip" 
     android:layout_marginLeft="10dip" 
     android:layout_marginTop="15dip" 
     android:layout_marginBottom="15dip" 
     android:paddingLeft="1.5dip" 
     android:paddingTop="1.6dip" 
     android:paddingRight="1.5dip" 
     android:background="@drawable/details_main_screen_background" 
     > 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_below="@id/data_main_screen_details" 
      android:layout_gravity="center" 
      android:orientation="vertical" 
      > 

      <Button 
       android:id="@+id/data_main_screen_button" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:background="@drawable/details_main_button_selector" /> 

      <TextView 
       android:layout_width="fill_parent" 
       android:layout_height="0dip" 
       android:layout_gravity="right" 
       android:layout_weight="1" /> 

      <Button 
       android:id="@+id/main_screen_tests_results_button" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:background="@drawable/tests_selector" /> 

      <TextView 
       android:layout_width="fill_parent" 
       android:layout_height="0dip" 
       android:layout_gravity="right" 
       android:layout_weight="1" /> 

      <Button 
       android:id="@+id/main_screen_visits_button" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:background="@drawable/visits_selector" /> 

      <TextView 
       android:layout_width="fill_parent" 
       android:layout_height="0dip" 
       android:layout_gravity="right" 
       android:layout_weight="1" /> 

      <Button 
       android:id="@+id/main_screen_med_button" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:background="@drawable/med_selector" /> 

      <TextView 
       android:layout_width="fill_parent" 
       android:layout_height="0dip" 
       android:layout_gravity="right" 
       android:layout_weight="1" /> 

      <Button 
       android:id="@+id/main_screen_sens_button" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:background="@drawable/sens_selector" /> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="0dip" 
       android:layout_gravity="right" 
       android:layout_weight="1" /> 

      <Button 
       android:id="@+id/main_screen_information_button" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:background="@drawable/information_selector" /> 

      <TextView 
       android:layout_width="fill_parent" 
       android:layout_height="0dip" 
       android:layout_gravity="right" 
       android:layout_weight="1" /> 

     </LinearLayout> 

    </RelativeLayout> 

</RelativeLayout> 
0

對於android:layout_height,您應該使用match_parent,如果您想要一些空間,則可以放置一些空白視圖(或Space)並給它們加權。如果您不想讓按鈕更改大小,並且您只是希望將它們對稱放置在屏幕中,則可以給它們android:layout_height="wrap_content"並圍繞在RelativeLayout內的每個Buttonandroid:layout_weight設置爲特定值。

+0

我在android:layout_marginBottom中使用。我認爲這就像空洞的意見。你對RelativeLayout的建議 - 我希望它是動態的對所有屏幕大小 – blay

+0

marginBottom不是像空視圖,你可以給空視圖的權重,所以他們將根據屏幕大小(不修復大小)調整大小。如果使用RelativeLayout,則不需要任何空視圖,例如,可以讓按鈕的高度爲wrap_content。這兩種方法都適用於任何屏幕尺寸。 – bogdan

0

這段代碼正是這麼做的:

<LinearLayout 
    android:id="@+id/notif" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentRight="true" 
    android:layout_marginBottom="60dp" 
    android:layout_marginRight="10dp" 
    android:background="@null" 
    android:orientation="horizontal" 
    android:gravity="right"> 

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="2" 
     android:gravity="right"> 

     <Button 
      android:id="@+id/btn_unread" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:background="@drawable/btn_notify"/> 
    </LinearLayout> 

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="3" 
     android:gravity="right"> 

     <Button 
      android:id="@+id/btn_notif" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginRight="5dp" 
      android:background="@drawable/btn_notify"/> 
    </LinearLayout> 
</LinearLayout>