0

Mon fragment Android utilise le support GridLayout pour afficher des vues espacées de manière égale (première image). Dans mon manifeste, je suis en train de modifier l'affichage du clavier virtuel de sorte qu'il redimensionne la GridLayout quand je tape sur la EditText et le clavier est affiché (deuxième image):GridLayout ne se réinitialise pas après l'ajustement de la taille du clavier masqué

android:windowSoftInputMode="adjustResize|stateHidden" 

Lorsque le clavier virtuel est caché, le GridLayout fait pas réinitialisé à sa taille initiale (dernière image).

Screenshot showing full screen Screenshot with soft keyboard open Screenshot with soft keyboard closed and GridLayout no longer looking like first screenshot

Toute idée sur la façon d'obtenir le GridLayout pour revenir à sa configuration d'origine dans la première capture d'écran? Je sais que si je supprime le android:windowSoftInputMode du manifeste, le problème disparaît, mais ce n'est pas quelque chose que je peux changer dans une autre application à partir de laquelle cette démo est créée.

est ici le fichier de mise en page du fragment:

<android.support.v7.widget.GridLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:grid="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    grid:columnCount="2" 
    grid:rowCount="3" 
    grid:orientation="horizontal"> 

    <EditText 
     android:layout_width="100sp" 
     android:layout_height="80sp" 
     grid:layout_gravity="center" 
     grid:layout_columnWeight="1" 
     grid:layout_rowWeight="1"/> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="80sp" 
     grid:layout_gravity="center" 
     grid:layout_columnWeight="1" 
     grid:layout_rowWeight="1" 
     android:text="B"/> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="80sp" 
     grid:layout_gravity="center" 
     grid:layout_columnWeight="1" 
     grid:layout_rowWeight="1" 
     android:text="C"/> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="80sp" 
     grid:layout_gravity="center" 
     grid:layout_columnWeight="1" 
     grid:layout_rowWeight="1" 
     android:text="D"/> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="80sp" 
     grid:layout_gravity="center" 
     grid:layout_columnWeight="1" 
     grid:layout_rowWeight="1" 
     android:text="E"/> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="80sp" 
     grid:layout_gravity="center" 
     grid:layout_columnWeight="1" 
     grid:layout_rowWeight="1" 
     android:text="F"/> 

</android.support.v7.widget.GridLayout> 

Répondre

0

Je donnai sur le GridLayout et sont passés à l'aide d'un ConstraintLayout qui fonctionne sans problème.

<android.support.constraint.ConstraintLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

     <EditText 
      android:id="@+id/itemA" 
      android:layout_width="100sp" 
      android:layout_height="80sp" 
      app:layout_constraintTop_toTopOf="parent" 
      app:layout_constraintLeft_toLeftOf="@+id/itemC" 
      app:layout_constraintBottom_toTopOf="@+id/itemC" 
      app:layout_constraintRight_toRightOf="@+id/itemC"/> 

     <TextView 
      android:id="@+id/itemB" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textSize="80sp" 
      app:layout_constraintLeft_toLeftOf="@+id/itemD" 
      app:layout_constraintBottom_toBottomOf="@+id/itemA" 
      app:layout_constraintRight_toRightOf="@+id/itemD" 
      app:layout_constraintVertical_chainStyle="spread" 
      android:text="B"/> 

     <TextView 
      android:id="@+id/itemC" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textSize="80sp" 
      app:layout_constraintTop_toBottomOf="@+id/itemA" 
      app:layout_constraintBottom_toTopOf="@+id/itemE" 
      app:layout_constraintLeft_toLeftOf="parent" 
      app:layout_constraintRight_toLeftOf="@+id/itemD" 
      app:layout_constraintHorizontal_chainStyle="spread" 
      android:text="C" 
      app:layout_constraintVertical_bias="0.0"/> 

     <TextView 
      android:id="@+id/itemD" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textSize="80sp" 
      app:layout_constraintLeft_toRightOf="@+id/itemC" 
      app:layout_constraintBottom_toBottomOf="@+id/itemC" 
      app:layout_constraintRight_toRightOf="parent" 
      android:text="D"/> 

     <TextView 
      android:id="@+id/itemE" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textSize="80sp" 
      app:layout_constraintTop_toBottomOf="@+id/itemC" 
      app:layout_constraintLeft_toLeftOf="parent" 
      app:layout_constraintBottom_toBottomOf="parent" 
      app:layout_constraintRight_toLeftOf="@+id/itemF" 
      android:text="E"/> 

     <TextView 
      android:id="@+id/itemF" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textSize="80sp" 
      app:layout_constraintTop_toBottomOf="@+id/itemD" 
      app:layout_constraintLeft_toRightOf="@+id/itemE" 
      app:layout_constraintBottom_toBottomOf="parent" 
      app:layout_constraintRight_toLeftOf="parent" 
      android:text="F"/> 

    </android.support.constraint.ConstraintLayout>