Android滚动布局ScrollView滚动到指定的View

本文用于在滚动布局中,操作View到屏幕顶端位置:

Activity生命周期中,onStart, onResume, onCreate都不是真正View真正visible的时间点,真正的visible时间点是onWindowFocusChanged()函数被执行时。
备注:从onWindowFocusChanged被执行起,用户可以与应用进行交互了,而这之前,对用户的操作需要做一点限制。
扩展:如果想要做一个Activity一加载完毕,就触发相应操作的话可以在onWindowFocusChanged()函数内操作

如果View还没有visible,使用View的getWidth() 、getHeight() 方法来获取该View的宽和高,返回的值为0。onWindowFocusChanged()内调用getWidth() 、getHeight() 方法可以正常获取宽和高。

获取距离

获取View距离父容器的距离:

 @Override
    public void onWindowFocusChanged(boolean hasFocus) {
        super.onWindowFocusChanged(hasFocus);

        y = view.getTop();  //顶部距离父容器的Y轴距离

    }

方法源码

smoothScrollTo(x,y):

/** 
     * Like {@link #scrollTo}, but scroll smoothly instead of immediately. 
     * 
     * @param x the position where to scroll on the X axis 
     * @param y the position where to scroll on the Y axis 
     */  
    public final void smoothScrollTo(int x, int y) {  
        smoothScrollBy(x - mScrollX, y - mScrollY);  
    }  

使用方法

利用scrollView的smoothScrollTo()方法操作View:


scrollView.smoothScrollTo(0,y);

你可能感兴趣的:(Android)