SoftKeyboard не отображается для вновь отображаемого фрагмента

У меня есть FragmentActivity, которая первоначально отображает фрагмент с несколькими кнопками на нем. При нажатии на одну из кнопок FragmentActivity отображает новый фрагмент с некоторыми полями editText. Я не могу заставить клавиатуру мягкого ввода отображаться, когда отображается мой новый фрагмент с полями editText.

Использование режима windowSoftInput в манифесте не помогает, так как в этом случае клавиатура отображается сразу же.

 android:windowSoftInputMode="stateUnchanged"

Я пытался использовать

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE)

безрезультатно. Вот как я отображаю новый фрагмент из моей Activity:

public void clickHandler(View view) {
        switch (view.getId()) {
        case R.id.login:
            loginFragment = new LoginFragment();
            FragmentTransaction transaction = getSupportFragmentManager()
                    .beginTransaction();

            transaction.replace(R.id.fragment_container, loginFragment);
            transaction.addToBackStack(null); 
            transaction.commit();
            getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);  
            break;

...

Я также попробовал вызвать setSoftInputMode из onCreate фрагмента, и это тоже не помогло. Подумав, что это проблема времени, я попробовал сделать это с помощью handler.postDelayed и это тоже не сработало. Это выглядело так:

onResume...    
Handler handler = new Handler();
            Runnable runnable = new Runnable() {

                @Override
                public void run() {
                    getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);                
                }
            };

            handler.postDelayed(runnable, 1000);

Любая помощь будет оценена по достоинству. Спасибо.

12
задан Nelson Ramirez 4 December 2014 в 23:00
поделиться