当前位置: 首页 > 知识库问答 >
问题:

在android中打开软键盘时,切换回屏幕上的后退按钮

谢俊悟
2023-03-14

正如你可以从屏幕截图中看到的,当我打开键盘时,后退按钮更改为关闭键盘的新操作。有没有办法通过代码禁用它,并显示屏幕上的返回按钮?

我四处寻找,但没有找到答案。

谢谢

共有2个答案

鲁辉
2023-03-14

您可以通过创建自定义EditText并在其中重写dispatchKeyEventPreIme()来实现这一点。

public class CustomEditText extends EditText {

    public CustomEditText(Context context) {
        super(context);
    }

    public CustomEditText(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public CustomEditText(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    @Override
    public boolean dispatchKeyEventPreIme(KeyEvent event) {

        // your logic here

        return super.dispatchKeyEventPreIme(event); // or return true if you don't want the keyboard to be hidden by system
    }
}
徐友樵
2023-03-14

你试过这个吗?

您可以覆盖“活动”上的“后退”按钮

@Override
public void onBackPressed() {
    super.onBackPressed();
}

更新

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);


    // Checks whether a hardware keyboard is available
    if (newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_NO) {
        Toast.makeText(this, "keyboard visible", Toast.LENGTH_SHORT).show();
    } else if (newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_YES) {
        Toast.makeText(this, "keyboard hidden", Toast.LENGTH_SHORT).show();
    }
}
 类似资料:
  • 我想移动我的布局,其中有几个视图,所以当用户触摸编辑文本,然后键盘打开,我的布局小部件上升。我甚至在清单Android:WindowsoftinPutmode=“AdjustPan”中使用了代码,然后Android:WindowsoftinPutmode=“AdjustPanAdjustStrezsize”没有任何工作,所以请帮助我 这里是我的xml

  • 我已经搜索了半打其他答案,但没有找到一个有效的答案。我只是想在用户按下回车键时关闭软键盘。(相当于极其简单的iOS“辞职键盘”通话。)在下面的代码中,不会调用onEditorAction方法。我在XML文件中设置了EditText视图,片段中的代码如下: 下面是XML文件中的一个片段,我在其中定义了EditText字段。我需要EditText多行。

  • 问题内容: 我有一个“保存”按钮,我想与软键盘一起向上推。因此,当用户单击我的布局中的EditText时,按钮必须保持在键盘上方。现在,该按钮将隐藏在键盘下方。你怎么做到这一点? 提前致谢! 问题答案: 您需要将键盘的输入模式设置为。您可以这样做,将以下行添加到清单中您的活动属性中: 这是在活动中添加的属性的示例:

  • 在我的应用程序中,我有一个EditText。当我聚焦这个元素时,会出现光标和键盘。当我知道按下后退按钮时,键盘消失,但元素保持聚焦,闪烁的光标仍然可见。 我试图用我在其他帖子上找到的代码来管理它,但它不起作用,我只是不明白这个事件。

  • 我有三个编辑文本字段。在这些字段中,我想只显示第一个字段的软输入键盘,并禁用后面两个字段,即日期和时间字段。 通过使用下面的代码,我可以禁用字段2和字段3的键盘,但当用户关注字段1时,键盘会出现,但当用户点击字段2或字段3时,键盘不会隐藏。虽然当第一次点击字段2或3时,不会出现键盘。 如果软输入键盘已打开,如何隐藏它?

  • 我对libGDX有一个问题,当我用后退按钮退出后恢复应用程序时,只有一个白色屏幕。 实际应用运行,接受触摸输入,播放声音,但屏幕只是白色。 我读过保持对纹理的静态引用可能会导致这个问题,但我没有这样做。 下面是我的资产代码如何工作的简化版本。 在按下后退按钮后返回应用程序时,重新创建AssetManager,重新打开SplashScreen(为白色),并更新AssetManager直到重新加载所有