我已经对此进行了很好的搜索,但我找不到有效的解决方案,所以这就是我在这里发布的原因。
我有一个Android应用程序,其中有一个带有一些View的TableLayout(EditText,TextView和CheckBox)。
我实现了自己的键盘,因此我可以控制用户输入的信息。
我的TableLayout位于ScrollView中,因为TableLayout可以包含多行。
我遇到的问题是当我的键盘出现时,它会隐藏EditText。通常android会将EditText向上推,使其可见但不是我的情况。我该如何解决这个问题?
答案 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);
}
}