1

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

我有一个 android 应用程序,其中有一个 TableLayout,其中包含一些视图(EditText、TextView 和 CheckBox)。

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

我的 TableLayout 在 ScrollView 中,因为 TableLayout 可以有很多行。

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

4

3 回答 3

1

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

android:windowSoftInputMode="adjustResize"

或者

android:windowSoftInputMode="adjustPan"

<activity>标签内。

于 2013-04-22T15:12:51.420 回答
0

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

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

如果有人知道为什么 adjustPan 不能与自定义键盘一起使用,请告诉我们!

特里斯坦

于 2013-04-23T12:54:25.370 回答
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);
}
}
于 2013-08-05T14:31:36.553 回答