2

我有一个列表视图,我正在实现捏缩放。我调整了更改行高的列表视图的每个子视图的大小。调整这些行的大小时,列表视图的顶部项目保持静止,其下方的项目向上移动以恢复松弛空间。

我正在尝试分两部分实现捏缩放。首先,使缩放原点成为可见列表的中心(现在它是顶部,就像我说的那样)。其次,根据缩放手势的焦点调整原点。

我的问题是我无法顺利调整缩放的原点。我现在使用的方法确实滚动了列表,但它会在视图更新后几毫秒执行它(它实际上看起来很糟糕......它真的很不稳定)。

有没有更好的方法来做我在下面的代码中所做的事情?

mMsgs 是一个列表视图。

// Center align the scroll
int yviewspace = mMsgs.getHeight();
int newyviewspace = (int) (yviewspace * zoomratio);
//mMsgs.scrollBy(0, -(yviewspace - newyviewspace) / 2); //This is smooth, but, sadly, it doesn't work on listviews.
mMsgs.smoothScrollBy(-(yviewspace - newyviewspace) / 2, 0);
4

0 回答 0