问题
I have got an EditText
looking like this (with "bottom gravity"):

When I press the EditText
, the keyboard shows up and I can't see anymore what I'm typing (because the EditText is now behind the keyboard, on the bottom). How could I move the EditText
automatically just above the keyboard, when it has been pressed?
At the end, it would be good if it would look like this:

My Code:
// 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);
回答1:
In your Manifest file add the following code for this particular activity
<activity android:windowSoftInputMode="adjustPan">
Check this doc for more info.
回答2:
use
android:windowSoftInputMode="stateVisible|adjustResize"
in your Manifest file. See developer site for your reference
回答3:
It happens sometimes that setting activity in manifest
android:windowSoftInputMode="stateVisible|adjustResize"
android:windowSoftInputMode="adjustPan"
not working with scrolling views containing EditText
.
After research I figured out
that to work in some cases parent layout has to be set android:fitsSystemWindows="true"
. Then native functionality of scrolling EditText
above scrollbar working like a charm.
来源:https://stackoverflow.com/questions/27858987/positioning-edittext-above-keyboard