在LinearLayout中设置layout_weight属性时如何获得高度

时间:2015-11-23 01:38:30

标签: android

  

我想使用自定义视图,但我不知道如何获得高度。

具体代码:

<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中,我得到height = 0,以及当layout_weight =&#34; 1&#34;时如何获得高度。

1 个答案:

答案 0 :(得分:0)

导致您的imageview和dotView覆盖所有布局。您只需要在布局中添加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>