将 EditText 定位在键盘上方
Positioning EditText Above Keyboard
我有一个 EditText
看起来像这样("bottom gravity"):
当我按下 EditText
时,键盘出现,我再也看不到我正在输入的内容(因为 EditText 现在在键盘后面,在底部)。当 EditText
被按下时,我怎样才能将它自动移动到键盘上方?
最后如果是这样就好了:
我的代码:
// 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);
使用
android:windowSoftInputMode="stateVisible|adjustResize"
在您的清单文件中。
参见 developer site 供您参考
在您的 Manifest 文件中为此特定的 activity
添加以下代码
<activity android:windowSoftInputMode="adjustPan">
查看 this 文档了解更多信息。
有时会在清单
中设置 activity
android:windowSoftInputMode="stateVisible|adjustResize"
android:windowSoftInputMode="adjustPan"
无法使用包含 EditText
.
的滚动视图
经过研究我想通了
在某些情况下必须设置父布局 android:fitsSystemWindows="true"
。然后在滚动条上方滚动 EditText
的本机功能就像一个魅力。
只需在布局 xml 中设置 android:fitsSystemWindows="true" 对我有用。
我有一个 EditText
看起来像这样("bottom gravity"):
当我按下 EditText
时,键盘出现,我再也看不到我正在输入的内容(因为 EditText 现在在键盘后面,在底部)。当 EditText
被按下时,我怎样才能将它自动移动到键盘上方?
最后如果是这样就好了:
我的代码:
// 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);
使用
android:windowSoftInputMode="stateVisible|adjustResize"
在您的清单文件中。 参见 developer site 供您参考
在您的 Manifest 文件中为此特定的 activity
添加以下代码<activity android:windowSoftInputMode="adjustPan">
查看 this 文档了解更多信息。
有时会在清单
中设置 activityandroid:windowSoftInputMode="stateVisible|adjustResize"
android:windowSoftInputMode="adjustPan"
无法使用包含 EditText
.
经过研究我想通了
在某些情况下必须设置父布局 android:fitsSystemWindows="true"
。然后在滚动条上方滚动 EditText
的本机功能就像一个魅力。
只需在布局 xml 中设置 android:fitsSystemWindows="true" 对我有用。