博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[转]ViewFlipper实现多标签切换
阅读量:7185 次
发布时间:2019-06-29

本文共 1159 字,大约阅读时间需要 3 分钟。

当我们需要实现多标签页程序的时候,相信很多人首先会想到用TabActivity来解决。没错,TabActivity就是用来解决多标签程序的。但其实,我们真的有必要一定要用TabActivity来解决吗?尤其是当多标签页程序里面嵌套的子Activity又是多标签的时候。这里我要介绍的是我比较钟爱的ViewFlipper。

实现多标签页程序的时候,通常都会使用TabHost,然后把TabWidget的visibility属性设置为gone(很多人都觉得原生的tab太丑,且现在大多数的UI都在模仿iPhone上面的UI,tab放在底部),而TabWidget的功能则用RadioGroup来实现。用TabActivity来实现的程序易于维护,因为每个页面都分别到了每个子Activity里面实现。但是可能有些同志会想当然的看到多标签就用TabActivity, 如果TabActivity里面的子Activity又继承了TabActivity,在监听按键的时候系统将不知道该返回到哪层,导致出错,这样的结果显然不是我们期望看到的。如果需要在子Activity里面实现多标签,我们可以用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

你可能感兴趣的文章
求最大和连续子向量问题的算法分析
查看>>
Java对象的生命周期与作用域的讨论(转)
查看>>
Android -- 打开本地图片且显示路径
查看>>
文本框下面有两个铵钮,点就加点减就减
查看>>
[工具]Serv-U配置教程
查看>>
Oracle EBS 初始化用户密码
查看>>
ExtJs自学教程(1):一切从API開始
查看>>
创建并调用 DLL(1)
查看>>
location.hash && location.href
查看>>
主从复制延时判断
查看>>
站点设计高性能高并发
查看>>
Spring JDBCTemplate使用JNDI数据源
查看>>
AssemblyInfo.cs文件的作用
查看>>
[Bug]IE11下,forms认证,出现无法保存cookie的问题
查看>>
.net学习之Attribute特性和EF关键知识点
查看>>
IIS7错误:“Web服务器被配置为不列出此目录的内容”的解决办法
查看>>
中企ITIL需软落地
查看>>
petshop4.0 具体解释之中的一个(系统架构设计)
查看>>
Html辅助方法 之 Form表单标签
查看>>
Android的SoundPool
查看>>