首页 > 移动平台 > 详细

Android-操作栏之副标题

时间:2015-12-17 12:08:51      阅读:238      评论:0      收藏:0      [点我收藏+]

  我们的目标是在操作栏右侧加上一个选项菜单,点击它就可显示或者隐藏操作栏的副标题。

  由于操作栏是在API11级以后出现的,因此必须考虑兼容性问题。我们直接让低于API11的设备根本看不到选项菜单即可。建立res/menu-v11,将menu的xml放入其中,

添加上该选项菜单Item。

   然后老步骤:1.setHasOptionsMenu(true)

         2.onCreateOptionsMenu()

         3.onOptionsItemSelected()

   技术分享 

    看似完美解决了问题,实际上有一个严重的bug。那就是经典的设备旋转问题。如果已经显示副标题,旋转后该副标题会为空,该选项菜单的title会变会show_subtitle

    如何解决呢?有的人会想到保存fragment实例,让其在设备旋转期间处于被保留状态。这个想法很棒,但忽略了一点,无论是副标题还是选项菜单的显示问题都属于视图问题,而不管fragment实例是否会被保存,fragment视图一定会被销毁,原因是资源的重配置可能性。

    无论之前有无副标题,视图重建时,都会没有。因此我们需要在fragment中添加一个flag用于存储副标题是否显示。在视图重建时根据该flag来判断是否需要显示副标题。

    技术分享

    技术分享

    最后总结一下,视图层显示的数据如果是在非创建视图方法中设置的,那么在设备旋转这类改变配置的行为后,由于视图的销毁重建,就算fragment实例一直保留,也枉然。

 

Android-操作栏之副标题

原文:http://www.cnblogs.com/JiMoRuXue/p/5053267.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!