ActionBar 溢出菜单和兼容问题解决
当我们想做一个类似于微信菜单
很快我们应该可以想到可以用support-v7包或者actionbarshecklock,然后就写menu布局,如下
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- add submenu -->
<item
android:id="@+id/menu_add"
android:icon="@drawable/actionbar_add_icon"
android:showAsAction="always"
android:title="@string/description">
<menu>
<item
android:icon="@drawable/actionbar_camera_icon"
android:showAsAction="ifRoom|withText"
android:title="拍照"/>
<item
android:icon="@drawable/actionbar_facefriend_icon"
android:showAsAction="ifRoom|withText"
android:title="群聊"/>
<item
android:icon="@drawable/actionbar_particular_icon"
android:showAsAction="ifRoom|withText"
android:title="我的微信"/>
<item
android:icon="@drawable/actionbar_search_icon"
android:showAsAction="ifRoom|withText"
android:title="搜索"/>
</menu>
</item>
<!-- more submenu -->
<item
android:id="@+id/menu_more"
android:icon="@drawable/actionbar_more_icon"
android:showAsAction="ifRoom"
android:title="@string/description">
<menu>
<item
android:icon="@drawable/ofm_add_icon"
android:showAsAction="ifRoom|withText"
android:title="添加"/>
<item
android:icon="@drawable/ofm_card_icon"
android:showAsAction="ifRoom|withText"
android:title="银行卡"/>
<item
android:icon="@drawable/ofm_collect_icon"
android:showAsAction="ifRoom|withText"
android:title="我的收藏"/>
<item
android:icon="@drawable/ofm_delete_icon"
android:showAsAction="ifRoom|withText"
android:title="删除"/>
</menu>
</item>
</menu>
然后就是在onCreateOptionsMenu中调用一下menu布局,貌似一切都大功告成了,在类似于nexus5这样的机子跑起来貌似也没啥问题,但当你在魅族机子上面跑起来的时候会发现出现很奇怪的现象,如下图
个人猜测,魅族这类机子对菜单键进行了定制,对溢出菜单会有自己的一些处理方式,那么怎么解决这个问题,而且使用这种传统做法,你会发现subMenu之
恩只能添加icon和title,而不能实现类似微信那种除了icon和title,还有小红点的效果,这时候可以考虑用ActionProvider。
ActionProvider官方文档解释为为单个menu控件定义丰富的menu交互。。。。。这恰恰是我想要的。。。
要使用ActionProvider,首先要继承ActionProvider写一个自定义的ActionProvider类,这个可以参考
ShareActionProvider。然后通过android:actionProviderClass属性在menu布局里导入。
利用ActionProvider,我们可以实现和刚才一模一样的效果,而且不会出现那魅族兼容的问题,我们只需要在onPrepareSubMenu
方法里面进行一些操作就行了,当然我们用ActionProvider还可以实现更复杂的效果,因为它里面的ActionView可以完全自定义,我们只
需要在onCreateActionView做对应处理就行;譬如说我们就要简单实现类似微信一样除了icon和title,还有小红点的效果,具体见
demo,在此不详述。。。
demo地址:仿微信 actiobar溢出菜单
ActionBar 溢出菜单和兼容问题解决的更多相关文章
- Open Sans字体兼容问题解决办法[font-face]
参考:http://www.tantengvip.com/2014/11/open-sans/ 1.font-face使用方法 font-face是CSS3中的一个模块,主要是把自定义的Web字体嵌入 ...
- Android ActionBar详解(二)--->使用ActionBar显示选项菜单
MainActivity如下: package cc.testsimpleactionbar1; import android.os.Bundle; import android.app.Activi ...
- WPF中不规则窗体与WebBrowser控件的兼容问题解决办法
原文:WPF中不规则窗体与WebBrowser控件的兼容问题解决办法 引言 这几天受委托开发一个网络电视项目,要求初步先使用内嵌网页形式实现视频播放和选单,以后再考虑将网页中的所有功能整合进桌面程序. ...
- Android的Toolbar(含溢出菜单设置[弹出菜单的使用])的使用PopMenu的样式
http://blog.csdn.net/yingtian648/article/details/52432438(转载) 1.在Toolbar.xml中设置弹出菜单的风格(app:popupThem ...
- Xamarin.Android之ActionBar与菜单
一.选项卡 如今很多应用都会使用碎片以便在同一个活动中能够显示多个不同的视图.在Android 3.0 以上的版本中,我们已经可以使用ActionBar提供的Tab来实现这种效果,而不需要我们自己去实 ...
- Android Training精要(一)ActionBar上级菜单导航图标
Navigation Up(ActionBar中的上级菜单导航图标) 在android 4.0中,我们需要自己维护activity之间的父子关系. 导航图标ID为android.R.id.home @ ...
- Easyui1.3.4+IIS6.0+IE8兼容问题解决
刚刚学习JQuery Easyui,就遇到了拦路虎,最新版本1.3.4下载下来部署到win2003 + IIS6.0中发现所有demo都不可以渲染,IE8提示错误如下: 详细内容如下: 用户代理: M ...
- 博创arm板编译内核makefile不兼容问题解决
导致这种结果的是:Make工具对低版本内核的Makefile一些旧的规则兼容不好,我们只需修改对应的Makefile. 改1:: 原始的: 大概在 1503行 / %/: prepa ...
- JavaScript在IE和Firefox(火狐)的不兼容问题解决方法小结 【转】http://blog.csdn.net/uniqer/article/details/7789104
1.兼容firefox的 outerHTML,FF中没有outerHtml的方法. 代码如下: if (window.HTMLElement) { HTMLElement.prototype.__de ...
随机推荐
- Linux Kernel Maintainers
http://en.wikipedia.org/wiki/Ingo_Molnár http://zh.wikipedia.org/wiki/英格·蒙內 Ingo Molnár Ingo Molnár, ...
- Anacoda 介绍、安装、环境切换
官网下载 概述 很多学习python的初学者甚至学了有一段时间的人接触到anaconda或者其他虚拟环境工具时觉得无从下手, 其主要原因就是不明白这些工具究竟有什么用, 是用来做什么的, 为什么要这么 ...
- css3背景及字体渐变
1.背景渐变: .linear { width: 100%; FILTER: progid:DXImageTransform.Microsoft.Gradient(gradientType=0,sta ...
- 宜人贷蜂巢ELK Stack之elasticsearch权限探索
前言 上文<宜人贷蜂巢API网关技术解密之Netty使用实践>提到了,API网关“承外对内”,将外部请求,转发到内部各个抓取服务.在网关中,不仅可以做鉴权.加解密.路由.限流功能:如果想了 ...
- Oracle中Hint深入理解
Hint概述 基于代价的优化器是很聪明的,在绝大多数情况下它会选择正确的优化器,减轻了DBA的负担.但有时它也聪明反被聪明误,选择了很差的执行计划,使某个语句的执行变得奇慢无比. 此时就需要DBA进行 ...
- CSS常识
1.给一个div设置边框:border:1px #CCCCCC bold; 2.给DOM加小手:cursor:pointer; 取消小手:cursor:auto;
- android:PopupWindow的使用场景和注意事项
1.PopupWindow的特点 借用Google官方的说法: "A popup window that can be used to display an arbitrary view. ...
- 一个兼容性比较好的图片左右滚动的js
下载地址:http://www.cnblogs.com/RightDear/admin/Files.aspx 文件:shhds.rar
- iOS开发---- 开发错误汇总及解决方法
本文转载至 http://blog.csdn.net/shenjx1225/article/details/8561695 一.今天调试程序的时候,出现了一个崩溃,信息如下: 2013-02-01 0 ...
- uGUI动态加载控件位置错误(转自:https://www.cnblogs.com/mezero/p/4542939.html)
最近在使用uGUI时遇到了一个问题,在此记录一下.在Canvas的Render Mode设置为Screen Space-Overlay模式时,动态加载控件是不会发生问题的.但是在Screen Spac ...