我已经将HorizontalScrollView子类化,以便我可以有一些自定义滚动行为,但是发现smoothScrollTo并不总是触发。 我必须使用以下代码解决此问题:
smoothScrollTo(x, y);
scrollTo(x, y);
这确保即使smoothScrollTo不起作用也实际完成滚动,因为scrollTo每次都有效。为什么会这样?我怎样才能让smoothScrollTo每次都能工作?
答案 0 :(得分:4)
试试这个:
mScrollView.post(new Runnable() {
@Override
public void run() {
mScrollView.smoothScrollTo(x, y);
}
});
答案 1 :(得分:0)
以下代码可以使用:
final int scrollposition = Math.round(hr/24.0f * 1440f);
final ScrollView sv = (ScrollView)findViewById(R.id.graphScrollView);
//sv.smoothScrollTo(0, scrollposition);
sv.post(new Runnable() {
@Override
public void run() {
sv.smoothScrollTo(0, scrollposition);
}
});
<强>原因:强> 在运行底层代码之前,它将等待滚动视图发布。