У меня есть FragmentActivity, которое изначально отображает фрагмент с несколькими кнопками на нем.Когда вы нажимаете одну из кнопок, FragmentActivity отображает новый фрагмент с некоторыми полями editText.Я не могу заставить мягкую клавиатуру ввода отображаться, когда отображается мой новый фрагмент с полями editText.
Использование режима windowSoftInput в манифесте отключено, поскольку сразу отображается клавиатура.
android:windowSoftInputMode="stateUnchanged"
Я пытался использовать
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE)
но безрезультатно.Вот как я отображаю новый фрагмент из моей Деятельности:
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);
Любая помощь будет оценена.Благодарю.