0

LinearLayout クラスを拡張し、次のように onMeasure() メソッドをオーバーライドするカスタム レイアウトを使用したいと考えています。

<com.myPackage.CustomLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        .....
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        .....
    </LinearLayout>

</com.myPackage.CustomLayout>

私のカスタムレイアウト:

public class CustomLayout extends LinearLayout {
    private static final double VIEW_ASPECT_RATIO = 2;
    private ViewAspectRatioMeasurer varm = new ViewAspectRatioMeasurer(
            VIEW_ASPECT_RATIO);

    public HomeLayout(Context context) {
        super(context);
    }

    public HomeLayout(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        varm.measure(widthMeasureSpec, heightMeasureSpec);
        setMeasuredDimension(varm.getMeasuredWidth(), varm.getMeasuredHeight());
    }
}

問題は、すべての子レイアウトが表示されないことです。この作業を行うにはどうすればよいですか? ありがとう!

(下手な英語でごめんなさい)

編集:私はこのクラスを使用しましたhttps://github.com/jesperborgstrup/buzzingandroid/blob/master/src/com/buzzingandroid/ui/ViewAspectRatioMeasurer.java

4

1 に答える 1