[转]ViewFlipper实现多标签切换
当我们需要实现多标签页程序的时候,相信很多人首先会想到用TabActivity来解决。没错,TabActivity就是用来解决多标签程序的。但其实,我们真的有必要一定要用TabActivity来解决吗?尤其是当多标签页程序里面嵌套的子Activity又是多标签的时候。这里我要介绍的是我比较钟爱的ViewFlipper。
实现多标签页程序的时候,通常都会使用TabHost,然后把TabWidget的visibility属性设置为gone(很多人都觉得原生的tab太丑,且现在大多数的UI都在模仿iPhone上面的UI,tab放在底部),而TabWidget的功能则用RadioGroup来实现。用TabActivity来实现的程序易于维护,因为每个页面都分别到了每个子Activity里面实现。但是可能有些同志会想当然的看到多标签就用TabActivity, 如果TabActivity里面的子Activity又继承了TabActivity,在监听按键的时候系统将不知道该返回到哪层,导致出错,这样的结果显然不是我们期望看到的。如果需要在子Activity里面实现多标签,我们可以用ViewFlipper来实现。布局代码大致如下:
<RadioGroup> </RadioGroup><ViewFlipperandroid:animationCache="false"android:alwaysDrawnWithCache="false" android:drawingCacheQuality="high"android:persistentDrawingCache="none"android:layout_width="fill_parent" android:layout_height="fill_parent"android:inAnimation="@anim/push_in" android:outAnimation="@anim/push_out"><include layout="@layout/xxx0" /><include layout="@layout/xxx1" /><include layout="@layout/xxx2" /></ViewFlipper>
在子Activity里面用ViewFlipper来实现页面的切换显然要比再继续继承TabActivity明智得多,嵌套越深越是容易出现问题。
ViewFlipper比较适用于布局切换时动画效果要求较高(inAnimation和outAnimation分别控制下一个页面的进入动画和当前页面的退出动画),各个布局间传递数据比较频繁。用ViewFlipper实现时,很显然所有的代码都是在一个Activity里面实现了,既然都在一个Activity里面,各个页面间的数据传递当然比在Activity间用Intent或者Broadcast来传递数据方便的多,但所有页面逻辑代码写在一个Activity里面带来的问题显然就是可维护性不好。
一个页面需要用一个Activity来实现,在我看来,这不是什么准则,如果逻辑代码不是很复杂,我更倾向于把所有页面逻辑代码写在一个Activity里面(关键是我喜欢控制页面的进出动画效果),毕竟大多数手机程序也大不到哪去,维护起来也不是什么难事。但是如果逻辑代码很复杂,而且需要很好的扩展性,最好还是分开来实现,这样后期的维护和升级也相对更轻松些,毕竟一个产品能否成功,升级和维护还是占很大的比例的。
转载于:https://www.cnblogs.com/neilyo/archive/2011/11/17/2252089.html
[转]ViewFlipper实现多标签切换相关推荐
- html5 css3 卡片切换,HTML5之纯CSS3实现的tab标签切换
HTML5的运用之纯CSS3实现的tab标签切换 CSS3代码实现的tab标签切换 *{padding:0px;margin:0px;} #tab{margin:20px;20px;position: ...
- html tab切换jquery,jQuery版Tab标签切换
鼠标移入Tab的时候会有一定的延时才会切换到相应的项,防止用户不经意的鼠标操作,点击相应的项也可以切换 效果图: 源代码: Tab标签切换 body{ background:#fff;} *{ mar ...
- jQuery bind事件练习及tab标签切换的实现
1.bind事件 jQuery部分代码: <script type="text/javascript"> $(document).ready(function(){ ...
- jQuery插件_SuperSlide插件(焦点图切换、标签切换、多个slide组合)
SuperSlidev1.2 SuperSlide 是致力于实现网站统一特效调用的函数,能解决大部分标签切换.焦点图切换等效果,还能多个slide组合创造更多的效果.(兼容ie内核(包括无敌的ie6) ...
- android标签切换卡,Android切换卡TabWidget用法示例
本文实例讲述了Android切换卡TabWidget用法.分享给大家供大家参考,具体如下: Tab选项卡类似与电话本的界面,通过多个标签切换不同的内容,要实现这个效果,首先要知道TabHost,它是一 ...
- 前端(jQuery)(10)-- jQuery标签切换
本部分内容之后补 1.标签切换布局实现 掌握如何通过使用边框技巧完成实例效果 2.标签切换具体实现 使用 jQuery 完成动态效果,包含添加事件,对鼠标事件做处理,添加延时功能,提供更好的用户体验. ...
- JS 实现 Tab标签切换功能
Tab标签切换 效果图: HTML部分: <div class="wrap"> <ul id="tag"> < ...
- Ubuntu下的终端多标签切换快捷键
转自: Ubuntu下的终端多标签切换快捷键 - "温故而知新" - 博客园 https://www.cnblogs.com/hester/p/5570157.html 储备知识: ...
- 实现JS标签切换效果【CSS图片切换】
运行代码尝试,我把整篇的CSS文件内容都弄上来了,难得去找具体内容了,反正能得到效果就可以了. 代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML ...
最新文章
- 数据库删除记录核心语句 解读 (vb6.0)
- 微信小程序:字体保持大小
- 如何用html绘制阴影图形,HTML5 给图形绘制阴影
- ADO winform注册
- addeventlistener事件第三个参数 passive_JS DOM 事件流、事件冒泡
- 计算机翻译字串符,字符的计算机处理和显示 外文翻译.doc
- python画玫瑰图_python windrose(风玫瑰图)
- 一个正常80后收藏夹中的精品网站
- 匹配数字、大小写字母、汉字、-、_而且不能以_开头或结尾
- 【科技视野】微信小程序真的是App的终结者?
- ArcGIS更多颜色调配
- vue项目兼容IE浏览器,判断IE11以下,则提示浏览器版本过低,更新浏览器页面
- C++性能之战(1)--深入到汇编看++i、i++、i+=1、i=i+1的区别
- 安卓手机能用的Mac地址修改器和教程
- 【ACL2021】ChineseBERT:香侬科技提出融合字形与拼音信息的中文预训练模型
- 【凯斯西储大学数据集介绍(CWRU)】
- OpenWrt LuCI 汉化指南
- GitHub Bitbucket GitLab Coding 的对比分析
- 恒压板框过滤实验数据处理_马鞍山板框式压滤机
- 2023-4-4 富文本编辑模糊查询