仅当活动开始时,如何滚动到Horizo​​ntalScrollView的中心?

我有一个活动,显示一个水平长的imageview howizontalscrollview

我需要当活动开始时,horizo​​ntalscrollview必须滚动到自己的中心,而不是开始。

我正在search谷歌,在这里,我找不到方法..

这是我的水平滚动视图:

HorizontalScrollView wvScroll = new HorizontalScrollView(this); wvScroll.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); iv.setImageBitmap(Util.getRemoteImage("http://mywebsite.com/90.gif")); iv.setScaleType(ScaleType.CENTER_CROP); wvScroll.addView(iv); mainLayout.addView(wvScroll); 

谢谢

Solutions Collecting From Web of "仅当活动开始时,如何滚动到Horizo​​ntalScrollView的中心?"

尝试:

 wvScroll.scrollTo(offsetX, 0); 

可能会有一个计时问题,在创buildscrollView之前设置偏移量。 在这种情况下,使用postDelayed()和调用scrollTorunnable

添加:

要使用postDelayed():

 private Handler mHandler = new Handler(); 

在onCreate做:

 mHandler.postDelayed(new Runnable(){ public void run() { wvScroll.scrollTo(offsetX, 0); } }, 1000); 

我不知道,但可能你需要有高度和宽度的孩子。 这样的笑话:

 int centerX = wvScroll.getChildAt(0).getWidth()/2; int centerY = wvScroll.getChildAt(0).getHeight()/2; wvScroll.scrollTo(centerX, centerY);