gpt4 book ai didi

android - 隐藏软键盘后 OnKeyListener 停止工作

转载 作者:太空狗 更新时间:2023-10-29 13:12:21 28 4
gpt4 key购买 nike

在 fragment 上,我有以下 OnKeyListener。如果当前显示,我用它来隐藏该 fragment 内部的 View 。如果未显示,我不会使用按键,而 Android 会。

    getView().setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && (event.getAction() == KeyEvent.ACTION_DOWN)) {
if (isSomeViewShowing) {
hideSomeView();
return true;
}
// Back pressed but view is not showing. Not consuming the event.
return false;
}
// Back not pressed. Not consuming the event.
return false;
}
});

隐藏 View 并在 View 不存在时进入正常的 Fragment/Activity backstack 效果很好,但如果用户使用软键盘在 EditText 中输入文本然后隐藏键盘,它将停止工作。

我知道 OnKeyListener 不适用于软键盘,但可以满足我的需要。我只需要监听器在输入完成并隐藏键盘后继续工作。

有没有办法防止这种情况发生?

解决方法是 listen for when keyboard is dismissed并在键盘关闭时再次添加 OnKeyListener,但实现它会增加简单任务的复杂性。

最佳答案

您可以在使用 fragmentactivity 中覆盖 onBackPressed(),然后它们会向 fragment 知道按下了返回键。像这样:

Activity :

/**
* Triggered when the user press back button
*/
@Override
public void onBackPressed(){

mYourFragment.onBackPressed();

}

fragment :

public void onBackPressed(){

if (isSomeViewShowing) {
hideSomeView();
}

}

关于android - 隐藏软键盘后 OnKeyListener 停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38715261/

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