从谷安卓4.0 ICS的一个手机/平板的bug说Fragment与Activity的不同

2012年10月21日 Android 8条评论 阅读3878次

今天说一个标准谷歌发布的安卓 ICS(4.0.4)中的一个小bug,或者说是用户体验不佳的地方,并呈上修改方法。

在搭载了ICS系统的平板电脑(注意是平板,手机并无此问题)中,顺序执行以下操作:

待机画面→设置→应用程序→点击右侧画面的“下载”(此时Tab处于在了"下载"位置了)→将平板翻转90°

此时观察,右侧画面Tab所处的位置,是不是又回到了"全部"的那个地方了。

本来用户是选择了下载,但旋转屏幕后,Tab却又回到了初始的默认位置,这就是这次要说到的那个小bug或用户体验不良的地方。

同样的操作方法,在手机上进行操作,貌似并没有发生这现象。为什么唯独平板有这问题呢。

下面就从手机和平板上实现的区别上进行分析。

首先从外观上就很容易区分,平板上,设置画面是分为左右两块区域的,而对手机而言,当你点击了一个设置项目,它会重新进入另一个画面。从实现角度来说,平板的那平板的那一块是使用Fragment片段来做的,而手机上的画面都是Activity。

基于这点的不同,从Fragment和Activity的区别来分析。若将手机或平板电脑连接到Eclipse中进行Debug调试,进入到应用程序一览的画面,在手机或平板电脑垂直90°翻转时,发现程序进入的该画面对应类(具体类名记不清了)的onCreate方法,说明这是从头开始走的。

屏幕翻转后同样是进入onCreate方法,为什么手机和平板电脑又有不同的表现呢。下面从Fragment和Activity的关系来进行更深入一层的分析。

百度一下,我就知道,Fragment是依赖于Activity的,也就是Fragment必须绑定在一个Activity上才能运行。在上面Debug单步调试时看到的onCreate方法,里面有个savedInstanceState的变量就是保存Activity状态的,所以使用Activity的手机在应用程序一览画面发生手机屏幕翻转时没有出现本文开始的bug现象,而依赖于Fragment的平板电脑虽然其Activity也是同样的使用savedInstanceState的东西来保存状态,但Fragment却是从初始状态开始的。

以上,解说完毕(不过上一段总感觉语言表达很有问题,还望谅解)。

分享本文至:

WRITTEN BY

avatar
看了本文是不是觉得很赞,那就赶紧点击下面按钮分享给身边的朋友吧!

8 条评论

  1. avatar 上海租车

    可以多留点神咯

  2. avatar 董主巳旨

    新年快乐,恭喜发财。

  3. avatar 青岛团购

    发个二点三都不能发啊?

  4. avatar 时间财富网

    网上商城搞活动,寻发帖人员数名,价格丰厚
    就是简单的发广告而已,很简单,酬劳丰厚,有意者私聊
    ①我想做,平时时间很多。
    ②不就是论坛发帖嘛,你去时间财富网看看,那里有很多人都做这个
    提交成功, 刷新頁面之前可以再編輯

  5. avatar 李冬

    activity可以说是安卓开发中的基石啊。

  6. avatar 充气娃娃

    呵呵,我是打酱油的。

  7. avatar 电视棒软件

    分析的很透彻,很欣赏你的看法,学习了。

  8. avatar 网购火车票

    分析的很透彻,很欣赏你的看法,学习了。

欢迎留言




用户登录

sitemap