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



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

具体代码:

<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="1"时如何获得高度。

导致imageview和dotView覆盖所有布局。您只需要在布局中添加weight_sum即可。http://developer.android.com/intl/es/reference/android/widget/LinearLayout.html#attr_android:weightSum

你不应该用dp来设置你的尺寸,因为它不是绝对的。最好的方法是将其设置为更改weight_sum-layout_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>

最新更新