我有下一个视图层次结构:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:gravity="center">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/group_bg"
android:gravity="center_vertical"
android:baselineAligned="false">
<LinearLayout
android:id="@+id/itemplace"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginRight="5dp"
android:layout_weight="1" >
<include
android:layout_width="wrap_content"
android:layout_height="wrap_content"
layout="@layout/pin" />
</LinearLayout>
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/arrow_black"/>
</LinearLayout>
</LinearLayout>
在绘制此层次结构之前,我需要获取 itemplace 宽度。我无法使用 OnLayoutChangeListener,因为我使用的是 API 级别 7。
我知道我必须使用 measure() 和 layout() 方法来计算视图的大小,但我不知道该怎么做。
我的层次结构中的根视图必须填满屏幕的所有宽度,因此 itemplace 宽度取决于父大小、父填充和 FrameLayout 宽度。
我必须怎么做才能让它变宽?