我想做一个scrollview的记录功能,就是一个页面有一个scrollview,我退出此页面时会记录scrollview.getScrollY()值,在下次进入activity时使用scroll.scrollTo(0, scrollY)直接定位到上次的位置,但是问题是我每次进入页面在oncreate(),或者onresume甚至onPostResume()里调用scrollTo函数都无法完成定位,但是放到onclick里执行是可以的,我猜测是因为在onresume等函数里scrollview还没有初始化完全,但是不知道android里提供了什么回调函数来通知这个事件,求教各位

解决方案 »

  1.   

    试试handler的postDelayed,delayed个50毫秒
      

  2.   


    我现在就是delay了200ms实现的,但是我觉得这样不是个好方法,如果有的机器比较慢可能这种方式就会有问题
      

  3.   


    我开始也以为在onPostResume()就加载完了。。结果又不是,。就唯有delay了。200ms太久啦。。不用那么久啊
      

  4.   

    @Override
    public void onWindowFocusChanged(boolean hasFocus) {
    // TODO Auto-generated method stub
    super.onWindowFocusChanged(hasFocus);
    if (hasFocus) {
    //do something
    }
    }
      

  5.   

        谢谢回答, 我刚刚试了一下,在加载完成后弹出一个dialog,但是这个dialog关闭掉又会弹出来,思考了一下没有想到解决办法,求指教
      

  6.   

    你需要做一个标记或者其他的判断
    比如isFrist,判断是否是第一次加载,开始时isFrist=true,第一次加载后isFrist=false;
    @Override
    public void onWindowFocusChanged(boolean hasFocus) {
    // TODO Auto-generated method stub
    super.onWindowFocusChanged(hasFocus);
    if (hasFocus&&isFrist) {
    //do something
    isFrist = false;
    }
    }
      

  7.   

    传个handler过去,加载完成的时候发消息,然后拿值