Android-操作栏之副标题

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

  由于操作栏是在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实例一直保留,也枉然。

时间: 2024-11-06 12:33:56

Android-操作栏之副标题的相关文章

Android官方入门文档[7]样式化操作栏

Android官方入门文档[7]样式化操作栏 Styling the Action Bar样式化操作栏 This lesson teaches you to1.Use an Android Theme2.Customize the Background3.Customize the Text Color4.Customize the Tab Indicator You should also read?Styles and Themes?Android Action Bar Style Gene

[Android系列—] 4. 添加操作栏(Action Bar)

前言 操作栏是最重要的设计元素之一,使用它来实现你的应用程序活动.通过提供多种用户界面功能, 使应用程序快速和其他的Andorid应用程序一致, 以便被用户熟悉和接受. 主要功能包括: 1. 标识你的应用程序,指示在应用程序的用户的位置. 2. 能很方便的操作重要的功能(像搜索功能) 3. 导航和视图切换功能(使用制表符或下拉列表) 类似的效果如下: 设置操作栏 在基本的使用状况是, 操作栏在左边显示活动的标题和应用的图标. 类似: 设置一个基本的操作栏需要你使用的应用活动主题支持操作栏, 这和

Android 创建项目ActionBar(操作栏)不显示的问题

昨晚在新建一个项目的时候,发现想创建一个带操作栏的项目,无论我怎么调,就是创建不出来. 在创建工程的时候选择了 但是打开运行还是没有操作栏 但是看了看其他的项目,AndroidManifest.xml文件以及styles.xml文件以及其他布局文件代码都是一样的,为什么其他的项目能显示呢? 查了好长时间都没有解决.最后在书中找到了答案. 又是一个版本兼容的问题(最近遇到了N多类似问题),操作栏组件是在 Android 3.0 (API 11)中被引入的,它是一个导航面板,代替了每个Activit

Android下拉刷新底部操作栏的隐藏问题

最近自己编写下拉刷新的时候,发现了一个问题,就是有一个需求是这样的:要求页面中是一个Tab切换界面,一个界面有底部操作栏,不可下拉刷新,另一个界面没有底部操作栏,但可以下拉刷新. 按照平常的做法,我在xml文件中使用了RelativeLayout,声明下拉刷新组件的layout_above为底部操作栏,然后在测试的时候发现一个奇怪的现象:如果一开始设置底部操作栏可见,在另一个运行下拉刷新的界面在下拉的时候就会出现和底部操作栏同样位置,同样大小,但颜色采用系统默认的布局,如果设置为不可见,则不会出

Android官方入门文档[8]重叠操作栏

Android官方入门文档[8]重叠操作栏 Overlaying the Action Bar重叠操作栏 This lesson teaches you to1.Enable Overlay Mode 1.For Android 3.0 and higher only 2.For Android 2.1 and higher 2.Specify Layout Top-margin You should also read?Styles and Themes 这节课教你1.启用重叠模式 1.对An

Android官方入门文档[5]建立操作栏

Android官方入门文档[5]建立操作栏 Setting Up the Action Bar建立操作栏 This lesson teaches you to1.Support Android 3.0 and Above Only2.Support Android 2.1 and Above You should also read?Setting Up the Support Library 这节课教你1.仅支持Android3.0及以上2.支持Android2.1及以上 你也应该阅读?设置支

第 16 章 操作栏

请参考教材,全面理解和完成本章节内容... ... 复制工程ch12,将工程目录改名为ch16. 在Honeycomb版本系统中,Android引入了全新的操作栏.操作栏不仅取代了用来显示标题和应用图标的传统标题栏(title bar),还带来了更多其他功能,例如,安置菜单选项.配置应用图标作为导航按钮,等等. 本章,我们将为CriminalIntent应用创建一个菜单,并在其中提供可供用户新增crime记录的菜单项,然后让应用的图标支持向上的导航操作,如图16-1所示. 图16-1 创建选项菜

Andriod 关于操作栏 ActionBar 的设计原则【转载+整理】

原文地址 本文内容 操作栏目的 基本布局 适应旋转和不同的屏幕尺寸 副操作栏的布局 操作栏按钮 上下文操作栏 操作栏清单 设计原则就是为你在编写 Android APP 时,尤其是如何安排操作按钮的位置,以及顺序等等,能大幅度提供用户体验的,提供的一个指导思想.值得时不时地回忆一下,这些指导原则都是经过长时间实践得到的结论.一个 APP 好不好,在你最开始时,点击一遍所有的菜单和按钮,就清楚了.在使用过大量 Android APP 后,你会发现,遵循了下面这些原则的 APP 将会有更好的用户体验

扩展用户体验之操作栏ActionBar

一.什么是ActionBar 熟悉Android的人应该很清楚ActionBar指的是哪一部分,不熟悉的人并不清楚其的重要性,特别是Web app与Hybrid app开发者基本没有这一概念,当然在你们平时的开发中也用到了类似于ActionBar功能的布局部分,只是实现当时不同而已,一个使用Java实现,一个使用html来布局. 那到底什么是ActionBar呢?每个App的不同界面中都有一个相同的部分,这部分UI一般在一个App中是一致的,这部分就是导航栏,导航栏中一般有返回导航菜单,应用图标