300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 原生拨号盘 语音搜索按钮隐藏 点击搜索框退出后语音搜索按钮出现但点击无反应

原生拨号盘 语音搜索按钮隐藏 点击搜索框退出后语音搜索按钮出现但点击无反应

时间:2024-07-03 12:40:40

相关推荐

原生拨号盘 语音搜索按钮隐藏 点击搜索框退出后语音搜索按钮出现但点击无反应

复现路径

1.点击进入拨号盘,搜索框没有语音搜索按钮

2.点击进入搜索框,然后点击搜索框左上角的返回按钮。

3. 返回后出现了红框中的语音搜索按钮

分析

抓取到控件名为voice_serach_button。

对此控件操作的有两个文件DialetactsActivity.java和SearchEditTextLayout.java.

为什么一开始打开拨号盘,语音搜索按钮隐藏?

DialetactsActivity.java的onResume函数调用prepareVoiceSearchButton:

通过pacakageManager查询,如果有处理android.speech.action.RECONGNIZE_SPEECH的Activity则将语音搜索按钮设置为可见,否则隐藏。

为什么后面语音搜索按钮又出现了?

问题出现在另一个文件SearchEditTextLayout.java里。

当搜索框折叠,展开等操作时,dialactsAcitivity通过ActioinBarContoller控制SearchEditTextLayout中元素的可见性。

核心函数是updateVisisbility。注意,此函数只是判断如果搜索框收起,则显示语音搜索按钮。没有进行是否有Activity可以处理语音识别。所以一点收起刷新搜索框,则会显示隐藏的语音搜索按钮:

修改方法:

参考DialetactsActivity.java,刷新搜索框时判断是否有Activity处理语音识别。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。