fragment+scrollview 切换fragment自动滚动到顶部
2016-10-10 20:29
886 查看
项目中一个MainActivity 装载了四个Fragment 其中最后一个fragment中包含了一个ScrollView ,ScrollView中还包含了一个GridView(fragment的交替显示用的是隐藏/显示,而不是ViewPager装载fragment,要注意这一点哦)
我的目标是:1: fragment间来回切换时ScrollView自动滑到顶部
2: 从包含ScrollView的Fragment中跳转至其他Activity后,返回这个Fragment,fragemt依然自动滑到顶部
3: 即使手动将ScrollView滑动至中间部分,以上两条依然成立
解决方案:1,代码中:
设置ScrollView获取焦点:
设置我的ScrollView中的GridView不获取焦点:
设置ScrollView滑到顶部:
2,布局中:ScrollView的布局
为什么要在布局和代码中两次设置呢。双重保险嘛~~只在布局或者只在代码中设置有时就会有问题。。为什么我也不太懂(求大神指点)
经过这两方面的设置,依然不能每次都实现所有目标,从其他fragment切换回来还是不能自动置顶(好,重点来啦!!敲黑板儿!!)
思路: 1.fragmennt的生命周期;项目中并不是使用ViewPager装载Fragment,只是在底部画了四个布局,点击切换Fragment,我在包含ScrollView的fragment里面将Fragment的生命周期全都打印出来,发现并没有走,最后还是问了别人,知道了一个fragment的方法
就这样,把代码中,布局中,fragment的生命周期中(就是以上我写的所有的代码)设置完毕,就完美啦~~没瑕疵!!!
小菜鸟学习ing...加油↖(^ω^)↗~
我的目标是:1: fragment间来回切换时ScrollView自动滑到顶部
2: 从包含ScrollView的Fragment中跳转至其他Activity后,返回这个Fragment,fragemt依然自动滑到顶部
3: 即使手动将ScrollView滑动至中间部分,以上两条依然成立
解决方案:1,代码中:
设置ScrollView获取焦点:
scrollView.setFocusable(true); scrollView.setFocusableInTouchMode(true); ScrollView.requestFocus();
设置我的ScrollView中的GridView不获取焦点:
gridView.setFocusable(false);
设置ScrollView滑到顶部:
scrollView.fullScroll(ScrollView.FOCUS_UP);//这个是设置ScrollView滑动到顶部的一种方案 scrollView.scrollTo(0,0);//这是scrollView滑动到顶部的第二种方案 //这两种的区别就是当用户切换到包含ScrollView的fragment的时候
//第一种:ScrollView有一个滑动到顶部的动作(一个动画);
//第二种:看不到滑动的动作,直接看到的就是顶部
2,布局中:ScrollView的布局
android:focusable="true" android:focusableInTouchMode="true" android:descendantFocusability="beforeDescendants"
为什么要在布局和代码中两次设置呢。双重保险嘛~~只在布局或者只在代码中设置有时就会有问题。。为什么我也不太懂(求大神指点)
经过这两方面的设置,依然不能每次都实现所有目标,从其他fragment切换回来还是不能自动置顶(好,重点来啦!!敲黑板儿!!)
思路: 1.fragmennt的生命周期;项目中并不是使用ViewPager装载Fragment,只是在底部画了四个布局,点击切换Fragment,我在包含ScrollView的fragment里面将Fragment的生命周期全都打印出来,发现并没有走,最后还是问了别人,知道了一个fragment的方法
@Override public void onHiddenChanged(boolean hidd) { if(!hidd){//当fragment从隐藏到出现的时候 scrollView.scrollTo(0,0); } }
//从Activity回到包含ScrollView的fragment //fragment的生命周期,我在重写了onResume() <pre name="code" class="java"> @Override public void onResume() { super.onResume(); myScrollView.scrollTo(0,0);//从其他Activity回来,让ScrollView置顶 }
就这样,把代码中,布局中,fragment的生命周期中(就是以上我写的所有的代码)设置完毕,就完美啦~~没瑕疵!!!
小菜鸟学习ing...加油↖(^ω^)↗~
相关文章推荐
- fragment+scrollview 切换自动滚动解决方法
- 解决fragment+scrollview+Recycleview切换fragment自动滚动到底部问题
- Android中仿淘宝首页顶部滚动自定义HorizontalScrollView定时水平自动切换图片
- Fragment切换页面RecyclerView自动滚动问题
- android scrollview fragment viewpager 切换 状态 变化 scrollview 滚动到最上方
- ScrollView+ViewPager(上下滚动+自动切换图片)
- 使用TabLayout、ViewPager和Fragment实现顶部菜单可滑动切换
- Android PullToRefreshScrollview+Listview 刷新界面的时候滚动到顶部
- 图片自动滚动,循环播放Android auto-scroll-view-pager(转载)
- ViewPager+Fragment+RecyclerView,当切换viewpager时,recyclerview自动滑动问题
- ScrollViewOnTou顶部背景折叠的滚动页面
- 实现滚动tab切换fragment + viewpager
- 微信小程序顶部用 scroll-view 组件横向滚动,类似tab选项卡的效果,
- Fragment切换方式与Recyclerview滚动影响
- 滚动视图(UIScrollView)无限无缝左右切换图片,自动顺序加逆序循环播放图片
- AutoScrollViewPager 自动循环滚动viewpager
- 在iOS7之后,苹果会自动给导航控制器里面的所有UIScrollView顶部都会添加额外的滚动区域64.
- android scrollview底部上滑 切换activity / scrollview滚动同时 顶部progressbar同步
- ViewPager+Fragment+RecyclerView,当切换viewpager时,recyclerview自动向上滑动问题