У меня есть 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);
Любая помощь будет оценена по достоинству. Спасибо.