位置: 编程技术 - 正文
推荐整理分享Android 使用ViewPager和RadioGroup配合Fragment实现标签页,可点击按钮切换、滑动切换。(Android 使用mp4做礼物特效),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:Android 使用nodejs,Android 使用mp4做礼物特效,Android 使用 实现应用程序之间进行的数据共享,Android 使用log4j2 无法加载,Android 使用的字体,Android 使用log4j2,Android 使用 ASM 修改函数,Android 使用 ASM 修改函数,内容如对您有帮助,希望把文章链接给更多的朋友!
本人Android新手,很多东西都是现学现卖。。。模仿大神们,分享一下自己的解决办法,也做个记录。大家认为有什么问题随时沟通,一般你都是对的=。=
最近做的项目中需要实现标签页,网上最常见的TabHost和TabWeight的方法,试了一下是可以实现标签页切换的。但不是很好用,不知道为什么界面上的按钮可以看到触发了按下抬起效果,但是没有收到click事件回调,所有按钮都失灵了,跳转另外的子页面也跳转不过去(应该是获取不到点击事件造成的),而且还需要做其他处理(网上说需要ActivityGroup)。所以放弃了传统的TabHost,使用ViewPager和RadioGroup配合Fragment实现标签页。如果有哪位兄弟知道这是为什么,请一定教教我,多谢Orz!
主体思路:ViewPager每一页存放一个Fragment,每个Fragment是一个要显示的标签页。RadioGroup和RadioButton实现顶部或底部的标签按钮(RelativeLayout很好实现)。ViewPager和RadioGroup是联动的,ViewPager切换时,根据回调,调整RadioGroup中Button的checked状态;点击RadioGroup中的按钮时,操作ViewPager滑动到指定的index,也就是想要的页面Fragment。改变一个,根据回调修改另一个。以实现标签页的效果。
主Activity继承自FragmentActivity,引用main.xml,初始化ViewPager和RadioGroup,用一个数组存放所有的RadioButton,当ViewPager的index修改时,根据index修改数组中对应按钮的checked状态。再一个数组存放所有的Fragment,这个数组的作用是为了传给ViewPager的Adapter使用。
有的同学看到Fragment就头疼,感觉很难很复杂的样子,其实跟Activity有很多是相的,在这个项目中,直接看成Activity也是可以的。在onCreateView中初始化界面的东西就可以了,跟onCreate差不多……
思路就是这样,很简单,下边是代码。
1.mian.xml布局(标签在底部)
2.TabFragmentActivity
3.Fragment部分,这是每个标签页,内部的内容加载一个xml就可以了。跟activity一样的操作。4.RadioButton的图片是个selector,实现不同checked状态显示不用的图。代码:附加效果:大家应该注意到了,ViewPager的回调中有三个方法,我们只重写了其中一个,获得了跳转后的页面index。下边这个方法,会通知外层,当前ViewPager的滑动程度,也就是0%时是在第一个页面,%时是滑动到了一、二两个页面中间,%时滑动到了第二个页面。这个滑动程度的参数是float arg1。大家可以看到微信的底部导航条,当滑动时,Button的颜色会有深浅变化,应该是跟这个参数有关(完全猜的)。
上一篇:Android 中的DisplayMetrics类的用法(Android 中的 TableLayout 继承自)
友情链接: 武汉网站建设