ActionBarCompat - 应用程序图标操作(单击)在 4.0 设备上不起作用

发布于 2024-12-14 08:20:23 字数 254 浏览 0 评论 0原文

我的 Android ActionBarCompat 项目遇到此问题:在 Android 4.0 模拟器上单击应用程序图标不会引发任何 onOptionsItemSelected 事件,而它适用于所有其他操作系统版本。

任何意见都将不胜感激!

I have this problem with the Android ActionBarCompat project: On emulators with Android 4.0 the click on the app icon doesn't cause any onOptionsItemSelected event, whereas it works on all other OS versions.

Any input is greatly appreciated!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

东风软 2024-12-21 08:20:23

您是否看到应用程序图标有任何触摸反馈? (按下它时它会发光吗?)

由于许多活动不使用操作栏主页按钮,因此在 Android 4.0 上运行的面向 API 14+ 的应用程序中,它默认处于禁用状态。 (这样用户就不会尝试按下它,看到它发光,并想知道为什么没有发生任何事情。)想要使用它的应用程序应该调用 ActionBar#setHomeButtonEnabled(true)

我们或许应该修改 ActionBarCompat 示例以更清楚地表达这一点。让您启动并运行的一种简单方法是修改 ActionBarHelperICS.java 并添加以下内容:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    mActivity.getActionBar().setHomeButtonEnabled(true);
}

在您希望更多地控制打开和关闭此功能的应用程序中,您可能需要进行进一步的更改。

Are you seeing any touch feedback from the app icon? (Does it glow when you press it?)

Since many activities do not use the action bar home button, in apps that target API 14+ running on Android 4.0 it is disabled by default. (This is so that users don't try pressing it, see it glow, and wonder why nothing happened.) Apps that want to use this should call ActionBar#setHomeButtonEnabled(true).

We should probably revise the ActionBarCompat sample to surface this more clearly. One simple way to get you up and running would be to modify ActionBarHelperICS.java and add the following:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    mActivity.getActionBar().setHomeButtonEnabled(true);
}

In an app where you want more control over turning this on and off you would want to make further changes.

感受沵的脚步 2024-12-21 08:20:23

我也有这个问题。这段代码对我来说很有效:

public void onCreate(Bundle savedInstanceState) {
    ...
    if (android.os.Build.VERSION.SDK_INT >= 11) {
        //noinspection ConstantConditions
        getActionBar().setHomeButtonEnabled(true);
    } else {
        getSupportActionBar().setHomeButtonEnabled(true);
    }
}

一些额外的信息:minSdkVersion="7" targetSdkVersion="18"。这是我的项目的 LAUNCHER 活动,因此它没有父活动。在其他活动中使用 setDisplayHomeAsUpEnabled(true) 效果很好。

I had this problem as well. This code did the trick for me:

public void onCreate(Bundle savedInstanceState) {
    ...
    if (android.os.Build.VERSION.SDK_INT >= 11) {
        //noinspection ConstantConditions
        getActionBar().setHomeButtonEnabled(true);
    } else {
        getSupportActionBar().setHomeButtonEnabled(true);
    }
}

Some extra info: minSdkVersion="7" targetSdkVersion="18". This is the LAUNCHER activity of my project, so it has no parent activity. Using setDisplayHomeAsUpEnabled(true) in other activities worked just fine.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文