在Android 4.3.3上手动更改布局宽度/高度后未调用onSizeChanged()(在Android 5.0上确定)

时间:2014-12-01 11:59:51

标签: android android-layout android-custom-view

我正在编写一个自定义组件,ViewGroup强制内部视图的大小:

myView.getLayoutParams().width = (int) itemSize;
myView.getLayoutParams().height = (int) itemSize;
myView.requestLayout();

但在内部视图中,仅当新尺寸小于旧尺寸时才会调用onSizeChanged()事件,如果itemSize大于当前尺寸,则不会调用onSizeChanged()

太奇怪了......

修改

我更改ViewGroup onLayout()内的宽度/高度。这是改变内部视图大小的正确方法吗?

编辑2

问题仅出现在我的Asus选项卡(Android 4.2.2)上。在我的nexus 5手机(Android 5.0)上一切正常。

1 个答案:

答案 0 :(得分:0)

您需要致电setLayoutParams

myView.getLayoutParams().width = (int) itemSize;
myView.getLayoutParams().height = (int) itemSize;
myView.setLayoutParams(myView.getLayoutParams());