gpt4 book ai didi

android - 方向更改后 showSoftInput 不起作用

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:40:48 28 4
gpt4 key购买 nike

我有一个带有单个 EditText 的 fragment ,它需要软键盘持续保持打开状态。旋转屏幕时键盘会隐藏。我在 OnActivityCreated 中调用 showSoftInput,它在旋转后执行,但它不显示键盘。

InputMethodManager imm = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(edit, 0);

注意:我不想使用 toggleSoftInput。我试过了,但在某些情况下最终会关闭键盘。并且无法通过查询 android 来确定键盘是否已经打开。

最佳答案

看来 showSoftInput 的 Fragments 有很多问题。

首先尝试@TronicZomB 的解决方案。它适用于具有单个 fragment 的 Activity 。

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

但是,对于具有嵌套 FragmentTransactions 的 Activity,您将被迫使用带有 SHOW_FORCED 和 HIDE_NOT_ALWAYS 参数的 toggleSoftInput。 HIDE_NOT_ALWAYS 防止切换命令在方向更改后关闭已打开的键盘。

InputMethodManager imm = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_NOT_ALWAYS);

要稍后隐藏键盘,您可以使用:

imm.hideSoftInputFromWindow(activity.findViewById(android.R.id.content).getWindowToken(), 0);

关于android - 方向更改后 showSoftInput 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16425329/

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