0
我想使用擴展的LinearLayout類並覆蓋這樣的onMeasure()方法,我的自定義佈局:自定義佈局只是爲了覆蓋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());
}
}
問題是,它不會顯示在所有的孩子佈局,所以我如何得到這項工作? 謝謝!
(對不起我的英文不好)
感謝您的回答,但它不起作用。我只想保持任何屏幕尺寸的相同寬高比。 – ChAndroid
刪除您的onMeasure方法並嘗試。問題應該在你的ViewAspectRatioMeasurer類上。 – Devrim
好的非常感謝!感謝您關於onMeasure方法的通知,我發現問題:我忘記了調用方法: super.onMeasure(widthMeasureSpec,heightMeasureSpec); 所以現在,它工作得很好。謝謝 – ChAndroid