gpt4 book ai didi

android - 在android中切换标签时隐藏键盘

转载 作者:太空狗 更新时间:2023-10-29 15:38:13 24 4
gpt4 key购买 nike

我已经创建了带有自定义类的选项卡条,并且在每个选项卡中显示了一个 fragment 。当键盘打开并且我切换到选项卡时,第二个 fragment 被调用但键盘没有隐藏。

我在两个 fragment 的 onCreateView() 中使用下面的代码,但它不起作用:

//To Hide Soft 
getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

最佳答案

onCreateView() 中使用该代码的问题是,只要在父 fragment/Activity 中创建选项卡,就会创建在选项卡中初始化的 fragment 。我对选项卡内 fragment 的行为进行了一些调查,并意识到您在覆盖许多生命周期方法(例如 onViewCreated()onResume())时会遇到同样的问题,等

我发现解决此问题的最佳方法是在要隐藏键盘的 fragment 中重写 setUserVisibleHint(boolean isVisibleToUser)。只要 fragment 的可见性发生变化,就会调用此方法。

@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser) {
try {
InputMethodManager mImm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
mImm.hideSoftInputFromWindow(getView().getWindowToken(), 0);
mImm.hideSoftInputFromWindow(getActivity().getCurrentFocus().getWindowToken(), 0);
} catch (Exception e) {
Log.e(TAG, "setUserVisibleHint: ", e);
}
}
}

关于android - 在android中切换标签时隐藏键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28358881/

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