Is there any way to change android:windowSoftInputMode value from java class?
Use the following to change the softInputMode for an Activity.
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
Use the following to change the softInput type for an EditText.
mEditText.setImeOptions(EditorInfo.IME_ACTION_DONE);
Thanks to @Eliezer for correction
According to Prasham's comment, I did this and it saved my life, thanks to him! The EditText
and SoftWindowInput
mode are quite buggy when you have a layout with ScrollView
and you are filling it dynamically.
Since I had gone through this post but had continued to read other answers/comments (like Prashan's one), I decided to write it in a new post.
Below the code I used with my ScrollView
:
Activity.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
I aim to use two different modes for tabs. The modes are SOFT_INPUT_ADJUST_RESIZE
and SOFT_INPUT_ADJUST_NOTHING
.
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
The code line above simply doesn't work by itself. App always behaves in a state ADJUST_NOTHING
. However, if windowSoftInputMode="adjustResize"
is inserted into <activity>
tag in AndroidManifest.xml file, app window is resized as default. Additionally, when you call following line
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING);
it will behave as expected and nothing is resized.
P.S. improvement to the answer