getWindow().setSoftInputMode not working as expected

18,123

Solution 1

You are setting the soft input mode for the activity, i'm not sure if it will work but try:

myFragment.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);

EDIT:

I suppose you are working with the onPause and onResume of the fragment, have yout tried using the ones of the parent activity? The result might be the same thou, because some times they are connected.

Solution 2

Try to also set the android:windowSoftInputMode="adjustPan" in your Manifest. I know it looks redundant to set the soft input mode in the manifest and in your code but that's the only way it worked for me.

Share:
18,123
Budius
Author by

Budius

Updated on June 27, 2022

Comments

  • Budius
    Budius almost 2 years

    In my Android project I want the softInputMode for just one fragment to be adjustPan.

    Adding the following line to my manifest (inside the activity) works as expected:

    android:windowSoftInputMode="adjustPan"
    

    But following lines in my fragment do nothing:

    @Override
    public void onResume() {
       super.onResume();
       getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
    }
    
    @Override
    public void onPause() {
        super.onPause();
        getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_UNSPECIFIED);
    }
    

    Any ideas why that is and what could be done to fix?