gpt4 book ai didi

android - 从另一个 Activity 返回时,SearchView 获得焦点并打开键盘

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:22:53 25 4
gpt4 key购买 nike

当我从另一个 Activity 返回到主要 Activity 时,searchView 获得焦点并且键盘打开,我设法通过使用以下方法阻止键盘打开:

    getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

但这还不够,如果打开和关闭操作栏下拉菜单,键盘会重新出现,因为 searchView 仍然有焦点(记住我只关闭了键盘)。我试图获取对 searchView 的引用并使其失去焦点,但这没有用。

所以基本上,我只希望 searchView 永远不会获得焦点或提示键盘打开,除非实际触摸了 searchView 文本区域。

最佳答案

这是因为 SearchView 是 Activity 返回 View 时的第一个可聚焦 View - 同样的问题 can be seen for EditTexts .

解决方案是相同的 - 将层次结构中较早的 View 设置为可聚焦。在我的例子中,这是 Toolbar 我的 SearchView 位于:

<android.support.v7.widget.Toolbar
style="@style/ToolbarStyle"
android:focusableInTouchMode="true"
android:id="@+id/search_activity_toolbar"
android:layout_height="?attr/actionBarSize"
android:layout_width="match_parent"/>

<android.support.v7.widget.SearchView
android:iconifiedByDefault="false"
... />

现在我可以在进入 Activity 时获得对我的 SearchView 的关注(clearFocus(); requestFocus(...);),然后当你退出 Activity 时通过搜索结果,然后按返回键返回,键盘状态与离开时相同。

请注意有关链接问题的其他一些解决方案,即 setting windowSoftInputMode="stateUnchanged" on the Activity 对我有用。

关于android - 从另一个 Activity 返回时,SearchView 获得焦点并打开键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21624282/

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