在ActionBar中,即便设置showAsAction="always",items仍然在overflow中显示的问题

今天很是苦恼,明明设置了android:showAsAction="always",但是所有的items全部都显示在overflow中,然后在官网发现了答案。

如果你为了兼容 Android 2.1 的版本使用了 Support 库,在 android 命名空间下showAsAction 属性是不可用的。Support 库会提供替代它的属性,你必须声明自己的 XML 命名空间,并且使用该命名空间作为属性前缀。(一个自定义 XML 命名空间需要以你的 app 名称为基础,但是可以取任何你想要的名称,它的作用域仅仅在你声明的文件之内。)

添加此命名空间 xmlns:app="http://schemas.android.com/apk/res-auto" ,使用app:showAsAction代替android:showAsAction。

例如:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <menu xmlns:android="http://schemas.android.com/apk/res/android"
 3     xmlns:app="http://schemas.android.com/apk/res-auto"
 4     >
 5
 6     <item
 7         android:id="@+id/action_search"
 8         android:icon="@drawable/peasy"
 9         app:showAsAction="always"
10         android:title="@string/action_search"/>
11
12     <!-- 设置, 在溢出菜单中展示 -->
13     <item
14         android:id="@+id/action_settings"
15         android:showAsAction="never"
16         android:title="@string/action_settings"/>
17     <item
18         android:id="@+id/action_about"
19         app:showAsAction="never"
20         android:title="@string/action_about"/>
21
22 </menu>

UI依然很丑,但是效果实现了,大家将就着看吧。

时间: 2024-08-25 14:15:14

在ActionBar中,即便设置showAsAction="always",items仍然在overflow中显示的问题的相关文章

来篇文章:ASP。NET程序中动态修改web.config中的设置项目 (后台CS代码)

朋友们可以自行测试,我这里都没有问题了,鳖了一上午的问题总算解决了 using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; usi

unity3d之从3ds max导入素材到unity中的设置

我们制造一个子弹的模型 1 首先设置3d max中参数,设置Customize->Units Setup Metic为厘米 2 建模,这里我们使用plane,一个平面,如图 3 然后导出 4 unity中模型设置,如图 在这里有个参数Scale Factor,这个参数很重要,设置小了,导致在unity里面可能看不到,大了又不合适. 5 创建一个material 6 创建一个shader,把这个shader赋值给刚才创建的material 这里的shader代码如下 Shader "Angr

linux中怎样设置dhcpd

linux中怎样设置DHCP 在 linux 以下设置 DHCP一点也不复杂﹐您全部要做的仅仅有一个文件﹕/etc/dhcpd.conf . 以下﹐我用我自己的设置文件来说说怎么改动这个文件﹕ default-lease-time 259200; max-lease-time 777600; option domain-name "siyongc"; 这几行我放在文件的开头部份.第一和第二行我定义出租约的预设期限和最高期限﹐ 数值以秒来计算﹐也就是'三天'和'九天'. 然后我指定了网络

DICOM医学图像处理:AETitle在C-FIND和C-MOVE请求中的设置问题

背景: 最近去医院部署设备,调试PACS系统,遇到了一个奇葩的问题.基本场景是:医院内部网络情况复杂,多个楼层的诊室都安装了看图端,都需要访问顶楼机房的PACS服务器.起初为了调试关闭了防火墙,并确保各楼层的看图端与PACS服务器之间可以ping通,端口也顺利开放.但是具体部署调试过程中发现"有些楼层可正常进行worklist查询和Query/Retrieve查询,而有些楼层只能正常进行worklist查询,Query/Retrieve查询后本地并未获得图像数据":第二天尝试后发现&q

JAVA中如何设置代理服务器,取消代理服务器

1.简介 代理服务器(Proxy Server)是一种重要的服务器安全功能,它的工作主要在开放系统互联(OSI)模型的会话层,从而起到防火墙的作用.代理服务器大多被用来连接INTERNET(国际互联网)和INTRANET(局域网).主要功能:就是代理网络用户去取得网络信息.形象的说,它是网络信息的中转站.本文主要介绍如何使用java代码设置代理服务器. 主服务器为了防止被伪用户攻击,统一让用户通过代理服务器去访问主服务器,这样做的安全性是显而易见的.一个图理解代理服务器及作用 2.使用 在JAV

jsp中如何设置使用FCKeditor(转自CSDN)

FCKeditor这个在线HTML编辑工具具说是一个不错的东西,速度快而且稳定,而且还是开源的.以前我一直在写ASP代码,所以都是用的国产的eWebEditor.现在写JSP代码,所以就用到FCKeditor了.网上很多文章介绍它都是ASP程序的,现在我把它如何加入JSP的方法,写出来 先去下载一个FCKeditor,我下的是2.3版.再下一个FCKeditor.java 2.3 (FCKeditot for java) 这个文件就是用来让它支持JSP的.这里面还有一个东西,要下,就是xalan

深度分析:Android中Mms设置页面更改短信中心号码流程

相关控件初始化方法:showSmscPref private void showSmscPref() { int count = MSimTelephonyManager.getDefault().getPhoneCount(); boolean airplaneModeOn = Settings.System.getInt(getContentResolver(), Settings.System.AIRPLANE_MODE_ON, 0) != 0; for (int i = 0; i < c

控制面板中java设置项如何删除

卸载jdk或者jre后,如果控制面板中仍然有java项,重新安装可能仍然无法设置,提示找不到"javacpl.exe" 解决办法:删除C:\windows\system32\下的java*.cpl,删除即可. 控制面板中java设置项如何删除,布布扣,bubuko.com

SSIS变量属性中EvaluateAsExpression设置的作用

我们在做SqlServer SSIS包开发的时候,经常会用到SSIS的变量,我们可以使用和修改SSIS变量的值使得SSIS包的逻辑更灵活,如下图所示: 在定义SSIS变量的时候可以使用固定值(如上图中的变量Number),也可以是使用表达式(如上图中的变量Sql),使用表达式的时候可以让变量去使用另一个变量的值,比如下图是变量Sql的表达式,其中就使用了变量Number的值: 顺便说一下,本文上面的截图都是基于SqlServer2012的SSIS包,也就是VisualStudio 2010的SS