gpt4 book ai didi

java - 内置搜索对话框中的应用程序图标可以点击吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:51:53 26 4
gpt4 key购买 nike

当用户点击内置搜索对话框中的应用程序图标时,是否仍然可以捕获?请注意,我指的不是自定义对话框,而是 android 内置的搜索对话框。

最佳答案

不,没有办法使 SearchDialog 的应用程序图标可点击。

但是为了好玩,让我们假设存在一些可以完成工作的 hacky 解决方法。太棒了,我们得到了想要的行为......但现在我们有两个问题:

  1. SearchDialog 的行为与其他 Android 设备不一致。这会降低用户体验,因为用户希望搜索界面在所有 Android 设备上都能以相同的方式工作。

  2. 您的应用现在使用内部 API,这些 API 在发布新 SDK 时可能保持一致,也可能不一致。众所周知,Android 团队可以更改 app icon's id@+id/search_app_icon@+id/search_home_icon。您的黑客依赖于内部API...因此这样的更改将导致运行您的应用程序的较新设备崩溃(因为对search_app_icon 的任何运行时搜索都将返回null )。

    此外,三星和 HTC 等公司在向公众发布新设备之前可以自由更改内部 API。下一个 Samsung Galaxy 可能会完全重新实现 SearchDialog 类,更新其 UI/主题等......你永远无法确定。

所以基本上,您不能...也不应该尝试这样做。


只是因为我很无聊,这里是让我找到答案的源代码:

  1. 查看 SearchManager.java 的源代码,并注意 SearchManagerSearchDialog 保留为私有(private)实例变量 mSearchDialog .

  2. 查看 SearchDialog.java 的源代码,并注意 SearchDialog 将应用程序图标引用为私有(private)实例变量 mAppIcon .另请注意,SearchDialog 通过调用 findViewById 来初始化变量,如 here 所示。 .

  3. 查看 search_bar.xml 的源代码并注意 ImageView 默认情况下未设置为 clickable。由于没有(公共(public) SDK 中的方法可以改变此 View 的行为,因此没有可靠的方法使其可点击。

关于java - 内置搜索对话框中的应用程序图标可以点击吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11218951/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com