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

时间:2012-10-17 18:50:46

标签: android android-layout scrollview horizontalscrollview

我有一个活动,显示带有水平长图像视图的howizontalscrollview。

我需要在活动开始时,horizo​​ntalscrollview必须滚动到itselft的中心,而不是滚动到开头。

我正在搜索谷歌和这里,我找不到方法..

这是我的水平滚动视图:

    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);

由于

2 个答案:

答案 0 :(得分:5)

尝试:

wvScroll.scrollTo(offsetX, 0);

可能存在计时问题,其中将在创建scrollView之前设置偏移量。在这种情况下,请使用postDelayed()runnable调用scrollTo

增加:

使用postDelayed():

private Handler mHandler = new Handler();
onCreate中的

执行:

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

答案 1 :(得分:3)

我不确定,但可能你需要有孩子的身高和宽度。像这样的Smth:

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