如何在android中自动layout_width / layout_height?

时间:2014-10-30 03:09:52

标签: android android-layout

我想要这样的东西

<LinearLayout android:layout_width="auto"
              android:layout_height="match_parent"
              android:background="#fff"
              android:orientation="vertical">
</LinearLayout>

父母的身高可能是动态的

如果父级的高度为100dp,则宽度为100dp

如果父级的高度为200dp,则宽度为200dp

1 个答案:

答案 0 :(得分:1)

我认为默认情况下android没有这个。但是,您可以创建自己的线性布局来执行此操作。

public class MyLinearLayout extends LinearLayout {
    public MyLinearLayout(Context context) {
        super(context);
    }

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

    public MyLinearLayout(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
        int height = MeasureSpec.getSize(heightMeasureSpec);
        setMeasuredDimension(height, height);
    }
}

请注意,如果屏幕宽度不够宽,无法在所需高度显示布局,则可能会出现问题。在xml中,只需将宽度设置为match_parent。