Ocultar el teclado EditTexts en Fragmentos

Editar: Tengo que usar el teclado, pero oculta mi EditText , lo necesito para desplazarse por lo que el teclado no es ocultarlo.

Estoy usando una tableta Samsung.

Mi estilo:

 parent="android:Theme.Holo.NoActionBar.Fullscreen" 

Los campos EditText están en una vista desplazable, así:

El diseño del fragmento:

 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="match_parent" android:layout_width="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin"> <ScrollView android:layout_height="wrap_content" android:layout_width="match_parent"> <LinearLayout android:layout_height="match_parent" android:layout_marginBottom="20dp" android:layout_width="match_parent" android:orientation="vertical"> <TextView android:layout_height="wrap_content" android:layout_marginTop="20dp" android:layout_width="wrap_content" android:text="@string/depot_code"/> <EditText android:hint="@string/enter_depot_code" android:id="@+id/etlocationId" android:imeOptions="actionNext" android:inputType="number" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:layout_width="wrap_content" android:lines="1" android:maxLength="12" android:singleLine="true"> <requestFocus/> </EditText> <TextView android:layout_height="wrap_content" android:layout_marginTop="20dp" android:layout_width="wrap_content" android:text="@string/name"/> <EditText android:hint="@string/enter_name" android:id="@+id/etname" android:imeOptions="actionNext" android:inputType="textPersonName" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:layout_width="wrap_content" android:lines="1" android:maxLength="24" android:singleLine="true"/> <TextView android:layout_height="wrap_content" android:layout_marginTop="20dp" android:layout_width="wrap_content" android:text="@string/street"/> <EditText android:hint="@string/enter_street" android:id="@+id/etstreet" android:imeOptions="actionNext" android:inputType="textPostalAddress" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:layout_width="wrap_content" android:lines="1" android:maxLength="24" android:singleLine="true"/> <TextView android:layout_height="wrap_content" android:layout_marginTop="20dp" android:layout_width="wrap_content" android:text="@string/suburb"/> <EditText android:hint="@string/enter_suburb" android:id="@+id/etsuburb" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:layout_width="wrap_content" android:lines="1" android:maxLength="24" android:singleLine="true"/> <TextView android:layout_height="wrap_content" android:layout_marginTop="20dp" android:layout_width="wrap_content" android:text="@string/state"/> <Spinner android:focusable="true" android:focusableInTouchMode="true" android:id="@+id/spinner" android:imeOptions="actionNext" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:layout_width="fill_parent" android:spinnerMode="dropdown"/> <TextView android:layout_height="wrap_content" android:layout_marginTop="20dp" android:layout_width="wrap_content" android:text="@string/phone"/> <EditText android:hint="@string/enter_phone" android:id="@+id/etphone" android:imeOptions="actionDone" android:inputType="phone" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:layout_width="wrap_content" android:lines="1" android:maxLength="12" android:singleLine="true"/> <Button android:id="@+id/btnadd" android:layout_gravity="center" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:layout_width="wrap_content" android:text="@string/add"/> </LinearLayout> </ScrollView> </FrameLayout> 

El diseño de la actividad:

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/tech_controller" android:layout_height="match_parent" android:layout_width="match_parent" android:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin"> < .../ Layouts. ../> <FrameLayout android:id="@+id/second" android:layout_height="match_parent" android:layout_width="fill_parent"/> </LinearLayout> 

Se han hecho preguntas similares, pero no he encontrado una respuesta que funcione.

Tengo un proyecto que utiliza muchos fragmentos adjuntos a la una actividad. En mi manifiesto por la actividad que tengo:

 android:windowSoftInputMode="stateHidden" 

Algunos de los fragmentos requieren la entrada del usuario.

En el diseño del fragmento uso:

Cada fragmento se anida de la siguiente manera:

 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="match_parent" android:layout_width="match_parent" .../> <ScrollView android:layout_height="match_parent" android:layout_width="match_parent"> <LinearLayout android:layout_height="match_parent" android:layout_width="match_parent" android:orientation="vertical"> <EditText android:imeOptions="actionNext" or android:imeOptions="actionDone" .../> 

Esto funciona bien. EXCEPTO el teclado oculta los EditTexts que están situados más abajo en la página.

Introduzca aquí la descripción de la imagen

He leído esto una y otra vez:

Http://developer.android.com/reference/android/widget/TextView.html#attr_android:imeOptions

Probado estas sugerencias, pero el teclado es entonces visible cuando se llama la actividad, que no quiero. También no funciona. Tal vez porque es un fragmento?

Ocultar SoftKeyboard EditText

El teclado Android se esconde EditText

He estado tratando de elaborar una solución dinámica. Cualquier ayuda es apreciada.

Editar: Esto es para uso en tabletas y sólo hay una opción de teclado, con cambios de idioma.


Editar: MI SOLUCIÓN

Lo he resuelto instalando otro teclado suave. Https://code.google.com/p/softkeyboard/wiki/HowTo

    Intente llamar a InputMethodManager.hideSoftInputFromWindow() durante la función InputMethodManager.hideSoftInputFromWindow() su fragmento mencionada en esta respuesta de SO ?

     @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); AppUtil.hideKeyboard(getActivity(), getView()); } 

    Donde hideKeyboard() parece a esto

     public static void hideKeyboard(Activity activity, View viewToHide) { InputMethodManager imm = (InputMethodManager) activity .getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(viewToHide.getWindowToken(), 0); } 

    Intente usar WindowsSoftInputMode como adjustpan solamente.

    Por ejemplo:

     android:windowSoftInputMode="adjustPan" 

    Puedes intentar poner esto en onActivityCreated de tu fragmento:

     getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN); 

    Esto no debe hacer que el teclado al cargar o iniciar su actividad con fragmento.

    Cambie esto a LinearLayout :

     <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 

    a

     <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="match_parent" android:layout_width="match_parent" android:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin"> 

    (Y la etiqueta de cierre). Observe la orientación.

    Actualizar el manifiesto Eliminar esto :

     <application ... > <activity android:windowSoftInputMode="stateVisible|adjustResize|adjustPan"> ... </activity> ... </application> 

    Cambiar esto (altura) :

     <ScrollView android:layout_height="wrap_content" android:layout_width="match_parent"> 

    He resuelto el problema mediante la instalación de otro teclado suave, a través de la tienda google play.

    Los comentarios de Petey me hicieron explorar esta solución.

    El IME que utilizaste tiene su propio diseño "flotante", ¿puedes probar tu código con IME incorporados como el teclado de Google o configurar tu IME con un diseño normal de ancho completo?

    Así que pensé, ninguna cantidad de jugar con el diseño de la vista iba a afectar a un teclado suave que tiene un diseño independiente.

    He utilizado este enlace https://code.google.com/p/softkeyboard/wiki/HowTo

    Incluso funciona con Android Manifest:

     android:windowSoftInputMode="stateHidden" 

    A continuación, utilizo imeoptions para controlar el flujo del cursor del editor dentro de la vista.

    Editar actualización

    Acabo de probar la aplicación en una tableta de marca no android, que viene con viene con un teclado genérico android y funciona, sin tener que cambiar una cosa. Parece que el teclado predeterminado de Samsung es doloroso.

    He intentado este código y he resuelto mi problema.

     getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN); 

    Lo que funcionó para mí fue usar el ScrollView de la misma manera que en mi FrameLayout, en el que agregé esta propiedad: android: windowSoftInputMode = "adjustPan". Al final, se ve así y funciona. No necesitaba cambiar nada programáticamente:

      <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".ProductFragment" android:windowSoftInputMode="adjustPan"> <ScrollView android:layout_height="wrap_content" android:layout_width="match_parent"> ... </ScrollView> </FrameLayout> 
    Interesting Posts
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.