我正在尝试滚动到ScrollView中的给定布局。我的XML基本上由一个实现各种RelativeLayout的ScrollView组成,我想以编程方式滚动到给定的一个。
我在Activity的onCreate方法中有以下代码:
// Defining my view
sv = (ScrollView)findViewById(R.id.reward_scroll_view);
// Get Layout's id from intent
Bundle extras = getIntent().getExtras();
if (extras != null) {
idToScroll = extras.getInt("uiToScroll");
sv.post(new Runnable() {
public void run() {
// Scroll to the passed element
RelativeLayout layout = (RelativeLayout) findViewById(idToScroll);
sv.smoothScrollTo(0, layout.getTop());
}
});
}
给定锚点的“自动滚动”工作正常,但没有“平滑”效果,只是原始滚动到布局。我错过了什么?
答案 0 :(得分:1)
答案 1 :(得分:1)
由于 Aamir 的评论,我解决了我的问题,这是我最终代码的样子:
Bundle extras = getIntent().getExtras();
if (extras != null) {
// Get Layout's id from intent
idToScroll = extras.getInt("uiToScroll");
layout = (RelativeLayout) findViewById(idToScroll);
// Start 1 second timer
new CountDownTimer(1000, 20) {
public void onTick(long millisUntilFinished) {
// Nothing...
}
// When over, start smoothScroll
public void onFinish() {
sv.smoothScrollTo( 0, layout.getTop() );
}
}.start();
}
我的视图可能需要一些延迟才能正确显示滚动效果。