防止键盘隐藏视图android

时间:2013-04-22 15:05:10

标签: java android keyboard android-edittext

我已经对此进行了很好的搜索,但我找不到有效的解决方案,所以这就是我在这里发布的原因。

我有一个Android应用程序,其中有一个带有一些View的TableLayout(EditText,TextView和CheckBox)。

我实现了自己的键盘,因此我可以控制用户输入的信息。

我的TableLayout位于ScrollView中,因为TableLayout可以包含多行。

我遇到的问题是当我的键盘出现时,它会隐藏EditText。通常android会将EditText向上推,使其可见但不是我的情况。我该如何解决这个问题?

3 个答案:

答案 0 :(得分:1)

您是否尝试将属性windowSoftInputMode添加到清单文件中:

android:windowSoftInputMode="adjustResize"

android:windowSoftInputMode="adjustPan"

<activity>标记内。

答案 1 :(得分:0)

总是有同样的问题。我发现windowsSoftInputMode =“adjustPan”或其他选项不适用于自定义键盘。

我的CustomKeyboard是一个实现KeyboardView的类,将xml链接到这个keyboardView并有2种方法来显示或隐藏它......

如果有人知道为什么adjustPan不适用于自定义键盘,请让我们知道!

特里斯坦

答案 2 :(得分:0)

我使用KeyboardView在自定义键盘上遇到了同样的问题,我通过短暂延迟设置项目选择解决了这个问题。

public boolean isCustomKeyboardVisible() {
return keyboardView.getVisibility() == View.VISIBLE;
}

public void showCustomKeyboard() {
    if (!isCustomKeyboardVisible()) {
    keyboardView.setVisibility(View.VISIBLE);
            //Calling my custom listener
    onKeyboardVisibilityChanged.visibilityChanged(true); 
    listView.postDelayed(new Runnable() {
        @Override
        public void run() {
            listView.setSelection(position);
        }
    }, 50);
}
}

public void hideCustomKeyboard() {
if (isCustomKeyboardVisible()) {
    keyboardView.setVisibility(View.GONE);
    onKeyboardVisibilityChanged.visibilityChanged(false);
}
}