Android KeyboardView en Fragment no se redimensiona

Estoy usando una clase Fragment en un TabHost. Este fragmento infla un KeyboardView así:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        if (container == null)
            return null;
        View v = inflater.inflate(R.layout.main_keyboard, container, false);

Esto funciona bien la primera vez onCreateView() se invoca (cuando se carga la aplicación). Sin embargo, las rotaciones de pantalla subsiguientes (cambios de configuración en tiempo de ejecución) no cambian el tamaño de KeyboardView a paisaje/retrato correctamente:

enter image description here enter image description here

teclado_principal.xml Puede ver que se hace referencia a KeyboardView en la parte inferior: `

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:gravity="center" >

        <RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingRight="10dip" >

            <TextView
                android:id="@+id/kbd_header"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:paddingRight="10dip"
                android:text="@string/keyboard_type" />

            <TextView
                android:id="@+id/kbd_type"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@id/kbd_header"
                android:text="@string/russian"
                android:textColor="#FF0000"
                android:textStyle="bold" />
        </RelativeLayout>

        <ImageButton
            android:id="@+id/btnRussian"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="10dip"
            android:contentDescription="@string/russian_keyboard"
            android:src="@drawable/russia" />

        <ImageButton
            android:id="@+id/btnEnglish"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="10dip"
            android:contentDescription="@string/english_keyboard"
            android:src="@drawable/america"
             />

        <ImageButton
            android:id="@+id/btnCombined"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:contentDescription="@string/combined"
            android:src="@drawable/combined" />

    </LinearLayout>

<com.eazyigz.RussiaMediaSearch.CustomKeyboardView
    android:id="@+id/keyboard_view"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_margin="0px"
    android:padding="0px" >
</com.eazyigz.RussiaMediaSearch.CustomKeyboardView>

¿Alguien tiene ideas sobre cómo hacer que KeyboardView cambie el tamaño correctamente?

Gracias, igor

preguntado el 22 de mayo de 12 a las 16:05

1 Respuestas

Problema resuelto: estaba usando: if (savedInstanceState != null) in onCreateView, y no estaba creando un nuevo objeto Keyboard cada vez que giraba la pantalla. Es por eso que el teclado no cambió de tamaño. Para resolver esto, necesitaba ejecutar un código como este cada vez:

mKeyboard = new Keyboard(getActivity(), R.xml.keyboard);

contestado el 22 de mayo de 12 a las 19:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.