将EditText定位在键盘上方

时间:2015-01-09 10:55:36

标签: android android-edittext android-softkeyboard

我有EditText看起来像这样("底部重力"):

enter image description here

当我按下EditText时,键盘出现,我无法再看到我正在键入的内容(因为EditText现在位于键盘后面,位于底部)。当按下键盘时,如何在键盘上方自动移动EditText

最后,如果它看起来像这样会很好:

enter image description here

我的代码:

// LINEAR LAYOUT
LinearLayout layout = new LinearLayout(getApplicationContext());
layout.setOrientation(LinearLayout.VERTICAL);
setContentView(layout);
// TEXTVIEW
layout.addView(tv);
// EDITTEXT
et.setGravity(Gravity.BOTTOM);
et.setInputType(InputType.TYPE_CLASS_TEXT);
et.setImeOptions(EditorInfo.IME_ACTION_SEND);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
                        params.gravity = Gravity.BOTTOM;
                        et.setLayoutParams(params); // SOMETHING LIKE ONTOUCH -> MOVE UPWARDS
                        layout.addView(et);

4 个答案:

答案 0 :(得分:31)

在您的清单文件中,为此特定活动添加以下代码

<activity android:windowSoftInputMode="adjustPan">

查看this doc以获取更多信息。

答案 1 :(得分:6)

使用

android:windowSoftInputMode="stateVisible|adjustResize" 
在您的清单文件中

。 请参阅developer site以供参考

答案 2 :(得分:0)

有时会在清单中设置活动

android:windowSoftInputMode="stateVisible|adjustResize" 
android:windowSoftInputMode="adjustPan" 

不适用于包含EditText的滚动视图。

研究后我发现 要在某些情况下有效,必须设置android:fitsSystemWindows="true"的父级布局。然后,在滚动条上方滚动EditText的本机功能就像超级按钮一样工作。

答案 3 :(得分:0)

只需在布局xml中设置 android:fitsSystemWindows =“ true” 即可。