android 4.0,操作栏上的文本永远不会显示

2024-01-12

我正在尝试使用 google 的新 api,特别是操作栏。

当构建设置为 api 10 时,如果我按下菜单按钮,我会看到漂亮的菜单选项,每个选项都有图片和图标。使用 api 14 时,无论我尝试什么,它总是将图标放在操作栏中,没有任何文本。我已经尝试了我能想到的一切。我给了它“with text”属性,将文本更改为单个字符(以防房间问题),但什么也没有。

我以前见过这样做,甚至在 android.developer 的开发人员指南中,但我似乎找不到如何让它显示的答案。


我怀疑 Android 开发人员有意识地决定永远不会在狭窄的操作栏上显示单个菜单项的文本和图标。但如果你真的想这样做,你可以使用安卓:动作布局 http://developer.android.com/guide/topics/resources/menu-resource.html在您的 menu.xml 文件中。这Android ActionBar 文档 http://developer.android.com/guide/topics/ui/actionbar.html#ActionView有一个稍微好一点的解释。

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/menu_foo"
          android:title="@string/menu_foo"
          android:icon="@drawable/ic_menu_foo"
          android:showAsAction="always"
          android:actionLayout="@layout/action_button_foo" />
</menu>

然后创建你的action_button_foo.xml layout:

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:paddingTop="14dp"
    android:paddingBottom="14dp"
    android:gravity="center"
    android:text="@string/menu_foo"
    android:drawableLeft="@drawable/ic_menu_foo"
    android:background="@drawable/bg_btn_action_bar"
    android:clickable="true" />

并使用选择器作为背景bg_btn_action_bar.xml,因此当您点击它时它会改变颜色:

<?xml version="1.0" encoding="utf-8" ?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:state_pressed="true"
        android:drawable="@drawable/bg_action_bar_pressed" />
    <item
        android:drawable="@color/transparent" />
</selector>

现在您需要使自定义视图处理点击事件。在您的 Activity 中,我喜欢这样做,以便我可以处理点击onOptionsItemSelected以及我所有其他非定制物品。

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.my_menu, menu);

    final MenuItem item = menu.findItem(R.id.menu_foo);
    item.getActionView().setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            onOptionsItemSelected(item);
        }
    });

    return super.onCreateOptionsMenu(menu);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

android 4.0,操作栏上的文本永远不会显示 的相关文章

  • Eclipse 运行时 Dalvik 错误

    当我要运行任何程序时 会显示此对话框 在 Eclipse 中 这些错误显示在控制台中 2013 02 25 19 05 09 Dex Loader Unable to execute dex Target out of range 0000
  • Android Studio 3.1.3不显示布局设计预览

    自从我上次在 android studio 中创建一个新项目以来已经有一段时间了 今天当我这样做时 android studio 没有从布局预览中显示任何内容 它是一个空白窗口 并显示 没有可显示的内容 我已经尝试过了 更新了sdks工具
  • 导入的项目抛出 java.lang.ClassNotFoundException

    所以我将一个现有的项目导入到 eclipse 中 但让它工作时遇到了很多麻烦 该项目与其他三个图书馆项目一起提供 谷歌播放服务库 捕获活动 肖像二维码 As soon as I imported the project I went und
  • 将 match_parent 转换为“0dp”

    当我使用android layout height match parent or android layout width match parent 作为约束布局中子项的高度 宽度并构建 Gradle 文件 它会自动更改为android
  • Android 4.4 (kitkat) 版本中的短信阻止和允许问题

    我们在 Google Play 上推出了短信拦截应用程序 如果满足任何阻止条件 它就会阻止短信 否则我们允许短信发送到本机收件箱 它在除 android 4 4 Kitkat 之外的所有版本上都运行良好 我们尝试实现适用于 4 4 的新短信
  • 从图库加载图像时应用程序崩溃

    在我的应用程序中 我有两个按钮 一个用于从图库 从设备 加载图像 另一个用于通过访问设备的相机拍照 我的代码在某些设备上正常工作 bt在某些设备上 应用程序单击图库中的图像时崩溃 任何人都可以帮助我找出实际问题吗 public class
  • 如何从 Android 服务获取应用程序上下文?

    我有一个正在运行并监听麦克风输入的 Android 服务 我希望它在满足特定条件时启动一项活动 为了创建意图 我需要应用程序上下文 我怎么才能得到它 Intent i new Intent ctx SONR class i addFlags
  • 如何从号码选择器中跳过某些号码?

    选号器 np NumberPicker findViewById R id numberPicker1 np setMaxValue 200 np setMinValue 1 Button b Button findViewById R i
  • 片段和通知:针对通知中的不同活动;取决于屏幕配置

    问题 如何决定做什么Activity a Notification如果目标可能取决于配置 屏幕尺寸 方向等 则应启动 就像人们使用时经常出现的情况一样Fragments Details 让我们考虑一下新闻阅读器示例 http develop
  • Motorola Android 2.2 相机忽略 EXTRA_OUTPUT 参数

    我以编程方式打开相机来拍摄视频 我告诉相机使用如下代码将视频文件放置到指定位置 Intent intent new Intent MediaStore ACTION VIDEO CAPTURE File out new File sdcar
  • 在 Volley 中更新 UI 最有效的方法是什么

    最近我在 android 中使用 Volley 库 它工作得很好 但我想知道更新 UI 的最有效方法 我有一个包含所有 Volley 方法的 Utils 类 现在我传递了所有视图将作为参数更新 但我读到我可以在活动中实现侦听器 然后将它们作
  • 制作教程(教练标记)叠加层。需要帮助根据另一个视图的位置移动视图

    你好 我正在尝试在教程上做一个教练标记 主程序 java public class Main extends Activity private Button button1 private int x Override public voi
  • 如何判断Android设备是否有触摸屏?

    我花了相当多的时间让我的 UI 仅支持键盘输入 但最终我不确定我是否可以相信 Android 设备都有触摸屏的假设 有没有办法判断Android设备是否有触摸屏 您应该研究现有设备并阅读Android 兼容性定义文档 http source
  • 加入牛轧糖热点

    我的应用程序有 2 个按钮 一个用于创建热点 另一个用于加入热点 流程是 我在其中一台设备上创建一个热点 然后尝试将其与其他设备连接 通过我的应用程序 问题是 有时我无法加入由 Nougat 设备创建的热点 它会卡在 获取 IP 地址 上
  • 具有 jsonObject 的 android 列表视图

    我正在开展一项活动 该活动请求服务器上的一个 php 文件 此 php 文件将返回给我一个JSONArray having JSONObjects作为它的元素 我明白了jArray并提取其内容 例如所有jsonObjects 每个 json
  • 连续按钮的自定义 arrayadapter 和 onclicklistener

    我有一个自定义数组适配器 我想为每一行中的按钮添加一个 onclicklistener 当我单击按钮时 我希望图像资源发生变化 一切正常 除了当我单击按钮时图像发生变化但另一行中的另一个按钮的图像也会发生变化 感谢您的帮助 这是我的代码 p
  • 如何获取任何已安装 Android 应用程序的清单权限

    是否可以获得任何已安装的 Android 应用程序的清单权限 感谢您的提示 让它运行 final Intent mainIntent new Intent Intent ACTION MAIN null mainIntent addCate
  • ACTION_MEDIA_BUTTON 的广播接收器不起作用

    我正在为 Android 操作系统版本 4 0 3 ICS 编写 Android 应用程序 问题是我没有从 BroadcastReceiver 的 onReceive 方法中的 Log d 获得输出 这意味着我的应用程序没有正确处理广播 我
  • okHttp3 java.lang.NoSuchMethodError:没有虚拟方法 setCallWebSocket

    我已从 okhttp Retrofit 更新到 okhttp3 Retrofit2 但我的应用程序因此异常而无法启动 FATAL EXCEPTION EventThread Process appli speaky com PID 1470
  • Firebase 令牌未生成

    我得到的令牌未生成 onTokenrefresh 没有调用 谁能帮忙 它已连接到 firebase 但令牌仍然没有生成 public class MyFireBaseInstanceId extends FirebaseInstanceId

随机推荐

  • 将 SQL 注释添加到 Linq 生成的查询中,以便它在 SQL 探查器中可见

    我们想要在一个项目中使用 Linq to SQL 这是我们第一次使用 Linq 通常我们只使用存储过程调用 到目前为止 一切都运行良好 但 DBA 询问我们是否可以以在 Profiler 中可见的方式标记 Linq 生成的 SQL 查询 我
  • 使用 google_oauth2 获取“错误:redirect_uri_mismatch”

    该网址似乎是正确的 昨天更新 文件也是 omn iauth rb provider google oauth2 MY CLIENT ID apps googleusercontent com MY CLIENT SECRET scope g
  • create-react-app 子文件夹项目不会 lint

    在子文件夹中使用 create react app 引导的项目不会出现 lint 但是 如果我在 VSCode 中以 root 身份打开项目子文件夹 如下图所示 或者在 root 下设置一个新的 create react app 项目 则
  • 从 vlcj 播放器数组中播放视频

    我正在尝试播放以字符串形式提供的 MRL 列表中的视频 问题是 当我尝试运行该类时 面板列表显示带有按钮 只有一个面板工作 但播放按钮不起作用 其他面板也不起作用 尽管我故意留下了停止按钮 因为我没有向它们添加动作侦听器 我想要实现的是 当
  • 如何使用scala或python在apache Spark中运行多线程作业?

    我面临着与 Spark 并发相关的问题 这阻止了我在生产中使用它 但我知道有一种解决方法 我正在尝试使用订单历史记录对 700 万用户的 10 亿种产品运行 Spark ALS 首先 我获取不同用户的列表 然后对这些用户运行循环以获取推荐
  • Vue 组件未显示在 Laravel 中

    我的 vue 组件没有显示出来 我看不出哪里出了问题 我希望另一双眼睛能指出我哪里出了问题 我正在运行 npm run watch 并清除了缓存 我的应用程序 js First we will load all of this projec
  • 在Java中启动VLC并通过rc接口连接到它

    我已经看过这个帖子了 但我仍然遇到一个问题 在java中启动vlc播放器 https stackoverflow com questions 1731299 starting vlc player in java看来 VLC 的 Java
  • 在带有整数数组的 ArrayList 上使用 contains

    我有一个ArrayList
  • Scala Swing 新手

    我正在尝试为我正在做的应用程序创建一个登录窗口 我一整天都在寻找一个例子 但我似乎找不到任何有帮助的东西 我的基本结构如下 App scala object App extends SimpleSwingApplication val ui
  • 检查运行时是否支持 SSE [重复]

    这个问题在这里已经有答案了 我想检查运行时是否支持 SSE4 或 AVX 以便我的程序可以利用处理器特定的指令 而无需为每个处理器创建二进制文件 如果我可以在运行时确定它 我可以使用一个接口并在不同的指令集之间切换 GCC 有一种方法可以做
  • Jetpack Compose Lazy Column 单选

    我正在从服务器获取数据并将其显示在列表中 可以一键选择每个项目以显示按钮 但我无法关闭它 只能打开它 这是列表类的项目 data class Task val deviceName String val deviceId String va
  • 单击类名为 selenium 的元素

    我正在尝试从网站上抓取酒吧的营业时间 有一个酒吧列表 如果您导航到您可以找到营业时间 当我点击具有类名的元素时遇到问题 我已经编写了代码来获取一个场所的营业时间 但是 我无法从第一个链接导航到每个场所 当我获得一个场地的营业时间时 此代码有
  • Puma 和 Nginx 502 错误网关错误 (Ubuntu Server 14.04)

    我需要部署我的 Rails 应用程序 所以我遵循了这里的所有步骤 https www digitalocean com community tutorials how to deploy a rails app with puma and
  • 在聚合中使用限制排序和跳过排序时出现 Mongodb 复制问题

    通过使用skip和limit排序来获取记录时面临重复记录的问题 采集数据 id ObjectId 594b507c9b9469ec9da6a78b name F percentage 60 0 weightedFilter 2 0 like
  • 获取 POST 变量

    我将 C 与 ASP NET 结合使用 如何检查参数是否已作为 POST 变量接收 如果参数是通过 POST 或 GET 发送的 我需要执行不同的操作 使用它来获取 GET 值 Request QueryString key 这对于 POS
  • 我可以以编程方式启用/禁用异常中断吗?

    我希望能够在调试时中断异常 就像在 Visual Studio 2008 的菜单调试 异常对话框中一样 除了我的程序在到达我想要调试的位之前有许多有效的异常 因此 不必每次都使用对话框手动启用和禁用它 是否可以使用 pragma 或其他方法
  • 如何解决 crypto.getRandomValues() 不支持的问题?

    切换到涡轮机组后 我出现以下错误 https next auth js org errors jwt session error https next auth js org errors jwt session error不支持 cryp
  • Java 泛型和超类型标记

    我试图将以下三种方法变成一个通用解决方案 我尝试了一些可以编译但在运行时表现不佳的想法 public static List
  • Xamarin iOS 调试器未命中断点

    昨天早上 当我开始开发 Xamarin iOS 应用程序时 我的调试器停止了工作 我可以放置断点 但是一旦应用程序启动 断点就会像红色甜甜圈一样变得空心 我已经多次重建 清理项目 我还擦除了 obj bin 文件夹 但似乎没有任何效果 我无
  • android 4.0,操作栏上的文本永远不会显示

    我正在尝试使用 google 的新 api 特别是操作栏 当构建设置为 api 10 时 如果我按下菜单按钮 我会看到漂亮的菜单选项 每个选项都有图片和图标 使用 api 14 时 无论我尝试什么 它总是将图标放在操作栏中 没有任何文本 我