2015-11-23 28 views
0

設置layout_weight屬性時,我想使用自定義的觀點,但我DONOT知道如何得到高度得到高度。如何的LinearLayout

和混凝土代碼:

<LinearLayout 
    android:id="@+id/timer_layout1" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:gravity="center_horizontal" 
    android:orientation="vertical"> 
    <com.zzb.resume.views.DotView 
     android:id="@+id/timer_line1" 
     android:layout_width="2dp" 
     android:layout_height="30dp" /> 
    <ImageView 
     android:id="@+id/timer_icon" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/timer_line1" 
     android:src="@mipmap/time2"/> 
    <com.zzb.resume.views.DotView 
     android:id="@+id/timer_line2" 
     android:layout_width="2dp" 
     android:layout_height="0dp" 
     android:layout_weight="1" /> 
</LinearLayout> 

在DotView我得到高度= 0,以及如何我可以得到高度時layout_weight = 「1」。

回答

0

導致您的imageview和dotView覆蓋所有layout.You只需要將weight_sum添加到您的佈局。 http://developer.android.com/intl/es/reference/android/widget/LinearLayout.html#attr_android:weightSum

您不應該使用dp來設置您的尺寸,因爲它不會是絕對的。要做到這一點 最好的辦法把它改變weight_sum-layout_weight率。

現在你有weight_sum 3 如果你的一個視圖有layout_weight = 1,這意味着它將覆蓋佈局的%33。

<LinearLayout 
     android:id="@+id/timer_layout1" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:weight_sum=3; 
     android:gravity="center_horizontal" 
     android:orientation="vertical"> 
     <com.zzb.resume.views.DotView 
      android:id="@+id/timer_line1" 
      android:layout_width="2dp" 
      android:layout_height="0" 
      android:layout_weight="1" /> 
     <ImageView 
      android:id="@+id/timer_icon" 
      android:layout_width="wrap_content" 
      android:layout_height="0dp" 
      android:layout_weight="1" 
      android:layout_below="@id/timer_line1" 
      android:src="@mipmap/time2"/> 
     <com.zzb.resume.views.DotView 
      android:id="@+id/timer_line2" 
      android:layout_width="2dp" 
      android:layout_height="0dp" 
      android:layout_weight="1" /> 
    </LinearLayout>