viewpager图片广告条点击转跳fragment-----【轮播图点击转跳详情界面】
2017-05-25 18:56
471 查看
先上效果图
例子就是最简单,就是入门的viewpager的轮播,想学习的同学也可以下载我的项目,下载地址在这
github.,里面有很详细的讲解,在自动轮播的时候加入和handler使其能够自动滚动,下面是能让viewpager能够自动滚动的代码,很简单就是获取当前的界面然后让当前的界面+1,然后发送一个空消息
然后一般做新闻客户端的详情页面的跳转都是序列化对象,然后进行Activity级别的跳转。我当时就想fragment这么好用,为啥不能用fragment啊?想了好久就果断想用点击图片转跳至fragment。这样还不用序列化对象。多方便啊,但是网上找了很久没有这方面的例子,然后下面这些代码是写在viewpager适配器中 instantiateItem这个方法中的。注意是在设置了图片数据之后才进行下面的代码。
这里讲讲以前遇到的一个bug,因为fragment是依托Activity才能存在的。所以我没有设置if(isclick)这个方法之前,只要是点击了图片然后转跳了fragment之后,在fragment上面点击几下,然后想返回原来带有viewpager的那个界面也需要点击同样的次数才能返回原来的界面。因为在fragment的下面就是Activity。虽然点击的是fragment,但是实际上点击的是fragment。
然后解决这个bug是设置了一个boolean类型的值,最开始设置为true,然后点了及fragment之后就改为false,这样在点进fragment之后就不能再点击了。然后重点来了
以下是转跳的代码
详细的viewpager的轮播在我的代码中都有,还望大家多多指教
下载地址 github.
例子就是最简单,就是入门的viewpager的轮播,想学习的同学也可以下载我的项目,下载地址在这
github.,里面有很详细的讲解,在自动轮播的时候加入和handler使其能够自动滚动,下面是能让viewpager能够自动滚动的代码,很简单就是获取当前的界面然后让当前的界面+1,然后发送一个空消息
android.os.Handler h=new android.os.Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); int item = viewPager.getCurrentItem() + 1; viewPager.setCurrentItem(item);//这个先写,int item后写 h.sendEmptyMessageDelayed(0, 4000); } };
记得还要在oncreat方法里面再次发送一个消息 h.sendEmptyMessageDelayed(0, 4000); |
这里讲讲以前遇到的一个bug,因为fragment是依托Activity才能存在的。所以我没有设置if(isclick)这个方法之前,只要是点击了图片然后转跳了fragment之后,在fragment上面点击几下,然后想返回原来带有viewpager的那个界面也需要点击同样的次数才能返回原来的界面。因为在fragment的下面就是Activity。虽然点击的是fragment,但是实际上点击的是fragment。
然后解决这个bug是设置了一个boolean类型的值,最开始设置为true,然后点了及fragment之后就改为false,这样在点进fragment之后就不能再点击了。然后重点来了
重点是,设置了另一个handler2,这里发空消息,空消息发的是让boolean类型为true,然后把消息发在转跳fragment中的语句中。这个办法虽然还是有缺陷,试验过在点击fragment界面很多次之后还是能返回原来的Activity界面的!!! |
imageView.setTag(imageaaa[realPosition]);///得到位置,某个图片的位置 imageView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { switch ((int) v.getTag()) { case R.drawable.a: if (isclick) { h.removeCallbacksAndMessages(null); getSupportFragmentManager(). beginTransaction(). //如果不加下面这个语句是直接退出的!!!! addToBackStack(null). replace(R.id.aaa, new newfragment()). commit(); isclick=false; Log.e("第一次的情况"," "+isclick); h2.sendEmptyMessageDelayed(0,4000); } Log.e("发了消息之后情况"," "+isclick); break; case R.drawable.b: if (isclick) { Log.e("第二个fragment开始", isclick + " "); getSupportFragmentManager(). beginTransaction(). addToBackStack(null). replace(R.id.aaa, new newfragment1()). commit(); isclick=false; } Log.e("第二个fragment结束", isclick + " "); break; case R.drawable.c: if (isclick) { getSupportFragmentManager(). beginTransaction(). addToBackStack(null). replace(R.id.aaa, new newfragment2()). commit(); isclick=false; } break; case R.drawable.d: if (isclick) { getSupportFragmentManager(). beginTransaction(). addToBackStack(null). replace(R.id.aaa, new newfragment3()). commit(); isclick=false; } break; } } });
详细的viewpager的轮播在我的代码中都有,还望大家多多指教
下载地址 github.
相关文章推荐
- Fragment+ViewPager实现仿微信点击和滑动切换界面
- Android之Fragment+ViewPager实现点击+滑动界面切换学习笔记
- ViewPager:真正实现图片的无限轮播、自定义指示点和条目点击事件(支持长按暂停滚动)
- Android 安卓 fragment+viewpager 仿qq界面 实现点击菜单切换界面+滑动切换viewpager切换界面
- ViewPager 实现自动循环轮播 高度自适应 显示前后部分界面 点击事件
- android app主题UI界面框架搭建 tablayout+Viewpager+fragment 导航栏滑动和点击切换界面
- 在fragment中用ViewFlipper做网络图片轮播手动+自动+点击事件
- Android自定义View实现自动无限轮播,点击图片进入详情页
- Android:详情界面左右滑动看更多,ViewPager动态添加Fragment,仿51job详情界面
- Viewpager图片自动轮播,网络图片加载,图片自动刷新
- 用全屏DialogFragment代替Activity,结合ViewPager展示图片
- 教你如何使用ViewPager+Fragment一步步打造顶部导航界面滑动效果
- ViewPager实现图片轮播_简单版
- Android ViewPager控件实现图片轮播
- 自定义viewpager 三张图片在同一屏幕轮播的效果
- 滑动或点击按钮切换页面 ViewPager+RadioGroup+Fragment
- ViewPager实现图片轮播,下方带小点显示当前位置
- viewpager和fragment实现的tab页面如何实现点击跳转
- Android图片轮播 ViewPager ImageView
- Android开发——利用ViewPager实现显示多个item无限轮播+点击事件监听