Tengo FragmentActivity que inicialmente muestra un fragmento con algunos botones. Al hacer clic en uno de los botones, FragmentActivity muestra un nuevo fragmento con algunos campos editText. Parece que no puedo mostrar el teclado de entrada suave cuando aparece mi nuevo fragmento con los campos editText.SoftKeyboard no se muestra para un Fragment recién visualizado
El uso del modo windowSoftInput en el manifiesto está desactivado ya que muestra el teclado de inmediato.
android:windowSoftInputMode="stateUnchanged"
He intentado usar
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE)
en vano. Así es como puedo mostrar la nueva fragmento de mi Actividad:
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;
...
También he intentado llamar setSoftInputMode desde dentro onCreate del fragmento y que no ha funcionado tan bien. Pensando que era un problema de tiempo, lo probé con handler.postDelayed y eso tampoco funcionó. Se veía así:
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);
Cualquier ayuda será apreciada. Gracias.
Sé que esto es viejo, pero para referencia futura : Creo que Window.setSoftInputMode se debe hacer una vez en Activity onCreate, ya que más adelante no parece tener efecto. Durante la operación, InputMethodManager se debe usar para cambios. – ProjectJourneyman