当用户单击内置搜索对话框中的应用程序图标时,是否有任何捕获?请注意,我指的不是自定义对话框,而是 android 内置的搜索对话框。
最佳答案
不,没有办法使 SearchDialog
的应用程序图标可点击。
但只是为了好玩,让我们假设存在一些可以完成工作的hacky 解决方法。很酷,我们得到了想要的行为……但现在我们有两个问题:
SearchDialog
的行为与其他 Android 设备不一致。这会降低用户体验,因为用户希望搜索界面在所有 Android 设备上都能正常工作。 id
从 @+id/search_app_icon
更改为 @+id/search_home_icon
。您的 hack 取决于内部 API...所以这样的更改将导致运行您的应用程序的较新设备崩溃(因为任何运行时搜索 search_app_icon
都将返回 null
)。此外,三星和 HTC 等公司可以在向公众发布新设备之前自由更改内部 API。下一个三星 Galaxy 可能会完全重新实现
SearchDialog
类,更新其 UI/主题等......你永远无法确定。 所以基本上,你不能......而且你不应该尝试这样做。
只是因为我很无聊,这是让我得到答案的源代码:
SearchManager.java
的源代码,注意 SearchManager
将 SearchDialog
作为私有(private)实例变量 mSearchDialog
保留。 SearchDialog.java
的源代码,并注意 SearchDialog
将应用程序图标引用为私有(private)实例变量 mAppIcon
。还要注意 SearchDialog
通过调用 findViewById
初始化变量,如 here 所示。 search_bar.xml
的源代码,注意到 ImageView
默认没有设置为 clickable
。由于公共(public) SDK 中没有 (方法可以改变此 View
的行为,因此没有可靠的方法使其可点击。关于java - 内置搜索对话框中的应用程序图标可以点击吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11218951/