TabLayout切换标题栏被顶上去的处理

通常都是ScrollView滑动而后包裹TabLayout+ViewPager+Fragmentandroid

在Fragment内包含 WebView、ListView、或者GridView之类的ide

一、设置ScrollView获取焦点:布局

mVideoScrollview.setFocusable(true);
mVideoScrollview.setFocusableInTouchMode(true);
mVideoScrollview.requestFocus();

二、设置ScrollView滑到顶部动画

//第一种:ScrollView有一个滑动到顶部的动做(一个动画);
mVideoScrollview.fullScroll(ScrollView.FOCUS_UP);
//第二种没有滑动动做直接到顶部
mVideoScrollview.scrollTo(0,0);

三、设置个人ScrollView中的GridView之类的不获取焦点:生命周期

mVideotwoLisview.setFocusable(false);

布局中:ScrollView的布局it

android:focusable="true"
android:focusableInTouchMode="true"
android:descendantFocusability="beforeDescendants"

为何要在布局和代码中两次设置呢。双重保险嘛~~只在布局或者只在代码中设置有时就会有问题List

 

通过这两方面的设置,依然不能每次都实现全部目标,从其余fragment切换回来仍是不能自动置顶(好,重点来啦!!敲黑板儿!!)fragment

思路: 1.fragmennt的生命周期;项目中并非使用ViewPager装载Fragment,只是在底部画了四个布局,点击切换Fragment,我在包含ScrollView的fragment里面将Fragment的生命周期全都打印出来,发现并无走,最后仍是问了别人,知道了一个fragment的方法request

@Override
public void onHiddenChanged(boolean hidd) {
    if(!hidd){//当fragment从隐藏到出现的时候  
        scrollView.scrollTo(0,0);
    }
}
//从Activity回到包含ScrollView的fragment
//fragment的生命周期,我在重写了onResume()
    @Override
    public void onResume() {
        super.onResume();
        myScrollView.scrollTo(0,0);//从其余Activity回来,让ScrollView置顶  
    }

代码中,布局中,fragment的生命周期中(就是以上我写的全部的代码)设置完毕scroll

相关文章
相关标签/搜索