我创建了一个自定义 ScrollView ,并向其中动态添加了一些 ImageView 。我只想在初始化 View 时将 ScrollView 滚动到特定位置。我使用 scrollview.smoothScrollTo() 方法将 ScrollView 移动到特定位置。它在 Android 2.1 中运行良好,但在 Android 2.2 中无法运行。 ScrollView 总是转到初始位置。 Whwn 我在它正在工作的按钮的 OnClick Listener 中使用了相同的方法。请帮忙。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.galleryitem_details);
hscrollView = (HorizontalScrollView)findViewById(R.id.photolist_scrollview);
addImages();
hscrollView.smoothScrollTo(1000, 0);
}
private void addImages() {
for(int i = 0; i< 10; i++) {
View imageDetailView = View.inflate(this, R.layout.gallery_image, null);
ImageView image = (ImageView)imageDetailView.findViewById(R.id.gallery_imagebig);
TextView txtView = (TextView)imageDetailView.findViewById(R.id.imageBigText);
ProgressBar spinner = (ProgressBar)imageDetailView.findViewById(R.id.gallery_scrollimage);
txtView.setWidth(screenWidth);
imageDetailView.setBackGroundResource(R.drawable.icon);
txtView.setText(PHGalleryActivity.galleryImages.get(i).getImageCaption());
imageDetailLayout.addView(imageDetailView);
}
/*
* Set the position of scroll view.
*/
}
hscrollview 没有滚动到该位置。 ScrollView 从初始位置开始。
最佳答案
问题已解决。我不知道到底是什么问题。我使用 Handler 来设置 ScrollView 的偏移值。当我们尝试在 onCreate() 中设置 ScrollView 的偏移量时会出现问题。在其他情况下,假设如果我们在 onClick() 中设置偏移值,则无需使用处理程序即可完美运行。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.galleryitem_details);
hscrollView = (HorizontalScrollView)findViewById(R.id.photolist_scrollview);
addImages();
updateUI();
}
class MHandler extends Handler {
public void handleMessage(Message msg) {
PHGalleryItemActivity.this.updateUI();
}
public void sleep(long delayMillis) {
this.removeMessages(0);
sendMessageDelayed(obtainMessage(0), delayMillis);
}
};
private void updateUI(){
mHandler.sleep(0);
hscrollView.smoothScrollTo(1000, 0);
}
关于android - smoothScroll 方法在 onCreate() 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5153805/