gpt4 book ai didi

java - 安卓。如何捕捉键盘隐藏的时刻?

转载 作者:行者123 更新时间:2023-11-30 11:35:17 26 4
gpt4 key购买 nike

我正在尝试捕捉从屏幕上移除键盘的事件,我正在使用以下代码:

    searchTextField.setOnEditorActionListener(new OnEditorActionListener()
{
public boolean onEditorAction(TextView v, int actionId, KeyEvent event)
{

System.out.println("ACTION ID " + actionId);

if(actionId == EditorInfo.IME_ACTION_DONE)
{
System.out.println("ACTION DONE!!!!!!!!!!");
return true;
}

return false;
}

searchTextField.setOnFocusChangeListener( new View.OnFocusChangeListener()
{
public void onFocusChange(View v, boolean hasFocus)
{
if (hasFocus)
System.out.println("HAS FOCUS");
else
System.out.println("FOCUS LOST");
}
});

但不幸的是它不起作用。 onEditorAction 从未调用过,无论我是开始编辑还是完成编辑。关于 onFocusChange 方法,它只是在键盘弹起时第一次被调用。当键盘下降或第二次上升时,它不会被调用。谁能解释我做错了什么?

最佳答案

我在 Activity rootView 上使用了 GlobalLayoutListener 来检查键盘是隐藏还是可见:

它的工作原理如下:

final View activityRootView = findViewById(R.id.activityRoot);
activityRootView.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
int heightDiff = activityRootView.getRootView().getHeight() - activityRootView.getHeight();
if (heightDiff > 100) { // if more than 100 pixels, its probably a keyboard...
... do something here
}
}
});

关于java - 安卓。如何捕捉键盘隐藏的时刻?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15203382/

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