android 切换Fragment ScrollView嵌套RecycleView 自动定位底部问题

切换Fragment时,ScrollView嵌套RecycleView(以及各种AdapterView时),自动定位到AdapterView最底部的问题。

解决思路:
切换fragment,ScrollView总是滑动到底部,只需要记录上一次滑动位置。然后切换回去时,滑动到上次的位置即可。

我通过重写SrcollView

public class SchoolScrollView extends ScrollView {

    //ScrollView滑动位置
    private int scrollY = 0;
    private int scrollX = 0;
    public SchoolScrollView(Context context) {
        super(context);
        //smoothScrollTo(0,0);
    }

    public SchoolScrollView(Context context, AttributeSet attrs) {
        super(context, attrs);
        //smoothScrollTo(0,0);
    }

    public SchoolScrollView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        //smoothScrollTo(0,0);
    }

    /**
     * 切换fragment,ScrollView总是滑动到底部
     * 记录上一次滑动位置
     */
    public void getLastSrcoll(){
        scrollX = getScrollX();
        scrollY = getScrollY();
    }

    /**
     *
     *
     */
    public void setLastSrcoll()
    {
        scrollTo(scrollX, scrollY);
    }

}

重写Fragment是否被隐藏的方法

@Override
    public void onHiddenChanged(boolean hidden) {
        super.onHiddenChanged(hidden);
        if (hidden) {
            mScrollView.getLastSrcoll();
        } else {
            mScrollView.setLastSrcoll();
        }
    }

猜你喜欢

转载自blog.csdn.net/irony0egoist/article/details/67723876
今日推荐