0

我在扩展 ScrollView 的类中使用 LinearLayout。LinearLayout 有许多孩子,其高度在我的自定义类的覆盖 onScrollChanged() 方法中发生变化。如果滚动缓慢,一切都会完美。如果我用甩动动作快速滚动,孩子们的身高就会卷曲。我已经在覆盖的 onScrollChange() 方法中进行了日志输出,它表明未应用布局参数。

Log.v("myapp", "getHeight: "+mChildHolder.getChildAt(i).getHeight());
Log.v("myapp", "getLayoutParams.height "+mChildHolder.getChildAt(i).getLayoutParams().height);

输出:

getHeight: 45
getLayoutParams.height 90

为什么滚动视图不允许在投掷后应用 LayoutParams 的任何想法?

4

1 回答 1

0

似乎找到了解决方案。我最终在每次调用 onScrollChanged() 时调用 requestLayout()。不确定它在性能方面是否有效,但现在可以按预期工作。

于 2012-11-30T09:51:12.550 回答