【发布时间】:2012-04-03 12:23:39
【问题描述】:
当我放大滚动视图内容的大小时,滚动视图需要一段时间才能“知道”它的孩子的大小变化。我怎样才能命令 ScrollView 立即检查它的孩子?
我在 ScrollView 的 LinearLayout 中有一个 ImageView。
在我的 ScaleListener.onScale 中,我更改了 LinearLayout 的大小。然后我尝试在滚动视图上订购滚动。在ScaleListener.onScale:
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) imageView.getLayoutParams();
params.width = (int) (startX * scaleFactor);
params.height = (int) (startY * scaleFactor);
imageView.setLayoutParams(params);
(...)
scrollView.scrollBy(scrollX, scrollY);
但是,在缩放滚动之前的情况下,由于视图太小而无法滚动,因此不会发生滚动。 setLayoutParams之后,view应该会变大,但是没有出现滚动,因为scrollview认为child还小。
当一个 fes ms 之后再次调用 onScroll 时,它确实滚动正常,它以某种方式发现孩子更大且可滚动。
如何立即通知滚动视图,孩子的大小已经改变?那么 scrollBy 将在它的孩子上 setLayoutParams 之后立即工作?
【问题讨论】:
标签: android scrollview scaling