【发布时间】:2017-10-28 06:17:46
【问题描述】:
我编写了以下通用的、每次可用的函数来显示和关闭键盘:
|==|以编程方式显示和关闭键盘:
InputMethodManager iptKeybodMgrVar;
void keybodDspFnc(EditText txtEdtVyuVar)
{
txtEdtVyuVar.requestFocus();
if (iptKeybodMgrVar == null)
{
iptKeybodMgrVar = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
}
iptKeybodMgrVar.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY);
}
void keybodDsmFnc(EditText txtEdtVyuVar)
{
iptKeybodMgrVar.hideSoftInputFromWindow(txtEdtVyuVar.getWindowToken(), 0);
}
但问题是,当编辑文本在键盘下方时,活动不会向上移动。它仅在用户开始输入时才会发生变化。
那么如何让它一出现键盘就向上移动呢?
我浏览了下面的所有链接,但没有任何帮助:
Android: How do I prevent the soft keyboard from pushing my view up?
adjustPan not preventing keyboard from covering EditText
Android : Soft Keyboard covering edit text up (adjustresize or adjustpan doesnt work)
我试过了,没用:
android:windowSoftInputMode="adjustPan|stateAlwaysHidden"
android:windowSoftInputMode="adjustResize|stateAlwaysHidden"
android:windowSoftInputMode="adjustResize|adjustPan"
也试过这个代码:
(所以,不重复:) Move layouts up when soft keyboard is shown?
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
//This Code brings up the keyboard at starting of the activity and pushes all Edit Text up. So not useful
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE|
WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
我可以添加 ScrollView,但它似乎只是解决方法,似乎不是解决方案。
感觉应该有一个解决方案,比如设置一些 InputMethodManager。
【问题讨论】:
-
可以放你的xml代码吗?
-
我正在添加相对布局并以编程方式和动态方式添加编辑文本。所以没有 XML。
-
整个 xml ?
-
@MehulKanzariya :我在您的链接中尝试了所有方法并帮助我。我相应地编辑了我的问题。
标签: java android android-edittext keyboard android-softkeyboard