重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
RecycleView设置滑动监听:
创新互联公司是专业的龙泉网站建设公司,龙泉接单;提供网站建设、成都网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行龙泉网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
mRecycleView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
}
@Override
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
}
});
判断滑动方向:
@Override
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
if (dy 0) {//下滑动作
}
if (dy 0) {//上滑动作
}
super.onScrolled(recyclerView, dx, dy);
}
判断是否滑动到顶部、底部:
@Override
public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
if(newState == RecyclerView.SCROLL_STATE_IDLE){//停止滑动
if(recyclerView.canScrollVertically(1)){
Toast.show("滑动到顶部");
}
if(recyclerView.canScrollVertically(-1)){
Toast.show("滑动到底部");
}
}
super.onScrollStateChanged(recyclerView, newState);
}
recyclerView.canScrollVertically(1); false表示不能往上滑动,即代表到顶部了;
recyclerView.canScrollVertically(-1); false表示不能往下滑动,即代表到底部了;
先上图
使用HorizontalScrollView可以让超出屏幕的导航栏可以滑动,每个RadioButton代表一个导航标题,android:button="@null"去掉RadioButton的选中圆圈
选中的下划线xml文件
将RadioButton导航栏的标题装在一个list集合里面,新增标题的时候可以直接在list里添加RadioButton的id,简约了ViewPage滑动定位到相应的RadioButton和相应的Fragment,不用when每个id去判断。
增加标题时也要add对应的Fragment
继承FragmentStatePagerAdapter 。当ViewPager中的Fragment数量相对较多时继承FragmentStatePagerAdapter,少时可以继承FragmentPagerAdapter
左右滑动切换是通过viewPager来实现的,完整代码查看附件。
ViewPager的数据是通过PageAdapter来装载的:
1. 调用adapter.notifyDataSetChanged(); 刷新控件,但是要覆盖PagerAdapter的getItemPosition方法,并返回 return POSITION_NONE;
2. 利用PagerAdapter的工作机制,就是PagerAdapter的执行顺序, PagerAdapter作为ViewPager的适配器,无论ViewPager有多少页,PagerAdapter在初始化时也只初始化开始的2个View,即调用2次instantiateItem方法。而接下来每当ViewPager滑动时,PagerAdapter都会调用destroyItem方法将距离该页2个步幅以上的那个View销毁,以此保证PagerAdapter最多只管辖3个View,且当前View是3个中的中间一个,如果当前View缺少两边的View,那么就instantiateItem,如里有超过2个步幅的就destroyItem。
3. 每当Adapter调用instantiateItem时,运用View.setTag方法将该View标识。当需要更新这个View的数据时,通过调用ViewPager.findViewWithTag方法找到相应的View,然后更新View中的数据。
Android上有一个控件叫做ViewPager,该控件可以根据item的多少实现左右滑动的效果。
Android上还有一个东西叫做Fragment,这是一个依赖于Activity而又独立的页面。
综合这两个控件的特性,可以使用ViewPager+Fragment的方式,即在ViewPager里嵌入Fragment的方式,实现页面左右滑动的效果。
左右滑动效果,在android4.0版本以下,需要用代码去控制
android 4.0以上增加了 SwitchButton这样的滑动控件.
自己实现的方式比较多,可以继承Button checkBox方式等等
以下为实现左右滑动效果的控件:
附件这收集了android各种滑动按钮的源代码供参考,也可以直接在项目中使用