我的布局中有一个滚动视图,有很多视图。
在scrollview中,我有一个特定项目的布局
<scrollview>
...
<FrameLayout>
<View1/>
<View2 hidden/>
</FrameLayout>
...
</scrollview>
____________ ____________
| | | |
| | | View 2 |
| View 1 | | |
| | | |
| | ------------
------------
我正在为这样的观点制作动画:
我的问题是:在执行这些操作时,滚动视图会自动滚动(看起来不太好)。
原因可能是:改变视图的可见性。
我尝试了两件事:
记住onAnimationStart中的scrollY并在onAnimationEnd中恢复此滚动位置 - 这种方法的问题是,它清晰可见滚动视图移动了(虽然它移动得非常快)。
我想到了这个想法,但我不知道如何实现这个:保持上部视图(与framelayout一样)并移动下部视图以填充空间,所以垂直scrollY值保持不变。
有没有办法实现这个? 如果没有,还有其他方法可以达到这个目的吗?
有没有办法部分重绘滚动视图?
答案 0 :(得分:2)
试试这个:
yourView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
return true;
}
});
如果你的View已经有一个onTouchListener,那么无论如何都要让它返回true。