Mam FragmentActivity, który początkowo wyświetla fragment z kilkoma przyciskami na nim. Po kliknięciu jednego z przycisków FragmentActivity wyświetla nowy fragment z niektórymi polami editText. Nie wydaje mi się, aby klawiatura z miękkim wejściem była wyświetlana po wyświetleniu mojego nowego fragmentu z polami editText.SoftKeyboard nie wyświetla się dla nowo wyświetlanego fragmentu
Korzystanie z trybu windowSoftInput w manifeście jest obecnie wyświetlane natychmiast po wyświetleniu klawiatury.
android:windowSoftInputMode="stateUnchanged"
Próbowałem, używając
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE)
bezskutecznie. Oto jak wyświetlić nowy fragment z mojej działalności:
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;
...
Próbowałem również nazywając setSoftInputMode od wewnątrz fragmentu w onCreate i że nie pracował, jak również. Myśląc, że to był problem z timingiem, spróbowałem go z handler.postDelayed i to też nie działa. Wyglądało to tak:
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);
Każda pomoc zostanie doceniona. Dzięki.
Wiem, że to stary, ale na przyszłość : Wierzę, że Window.setSoftInputMode musi zostać wykonany jeden raz w działaniu onCreate, ponieważ później wydaje się nie działać. Podczas działania, InputMethodManager musi być użyty do zmian. – ProjectJourneyman