samsung poner ocultar notificaciones navegacion mostrar inferior estado como bloquear barra activar android android-linearlayout android-toolbar android-recyclerview appcompat-v7-r22.2

android - poner - mostrar barra inferior samsung s8



La barra de herramientas de Android se mueve hacia arriba cuando aparece el teclado (11)

Estoy creando una pantalla de interfaz de usuario basada en chat en la que tengo barra de herramientas y recyclerview para mensajes de chat, y respondo a maquetación de mensajes.

Cada vez que edita el texto, el foco se mueve hacia arriba en la barra de herramientas. En su lugar me gustaría cambiar el tamaño de la recyclerview.

Algunas de las respuestas de stackoverflow sugieren colocar una vista de desplazamiento vacía debajo de la barra de herramientas , pero no funcionó.

<activity android:name=".PostMessageActivity" android:label="@string/title_activity_post_message" android:windowSoftInputMode="stateVisible|adjustResize" > </activity>

Estoy configurando windowSoftInputMode a stateVisible|adjustPan en el archivo de manifiesto.

<RelativeLayout 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="com.pasonet.yokibu.PostMessageActivity" > <include android:id="@+id/toolbar_home" layout="@layout/toolbar_home" android:elevation="5dp" /> <ScrollView android:layout_width="match_parent" android:layout_height="match_parent"> </ScrollView> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@+id/toolbar_home" android:orientation="vertical" android:layout_above="@+id/add_post_layout" > <android.support.v7.widget.RecyclerView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/post_msg_recyclerview" > </android.support.v7.widget.RecyclerView> </LinearLayout> <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:padding="5dp" android:id="@+id/add_post_layout" android:background="#ffffff" android:layout_alignParentLeft="true" android:layout_alignParentRight="true" android:elevation="5dp" android:layout_margin="0pt" > <EditText android:layout_width="0dp" android:layout_height="match_parent" android:id="@+id/messageText" android:layout_gravity="bottom" android:layout_weight="1" android:maxLines="4" android:scrollbars="vertical" android:background="@color/trasnperant" android:hint="Type your message" android:layout_marginBottom="4dp" /> <ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_send_black_36dp" android:id="@+id/sendButton" android:background="@drawable/abc_btn_default_mtrl_shape" android:onClick="addPost" /> </LinearLayout>


Compruebe WindowsSoftInputMode en el manifiesto de Android intente configurar AdjustResize o AdjsutPan


Debe agregar android: fitsSystemWindows = "true" en el diseño raíz de la barra de herramientas. Si lo agrega al diseño principal de su actividad, aparecerá una línea extraña (con la altura de la barra de estado) sobre su barra de herramientas.


El problema fue que estaba usando <item name="android:windowTranslucentStatus">true</item> en styles.xml

Para habilitar adjustResize agregar android:fitsSystemWindows="true" en el diseño principal de su actividad


En mi caso, mi aplicación predeterminada estaba usando Coordinator Layout para el elemento raíz. Incluso hacer lo que se describió anteriormente no resolvía mi problema. Entonces hice lo siguiente:

  1. Se cambió el diseño de la raíz de Coordinator Layout a RelativeLayout
  2. Incluido android:fitsSystemWindows="true" para el diseño de la raíz
  3. Incluido android:windowSoftInputMode="adjustResize|stateAlwaysHidden" a la etiqueta de manifiesto de actividad.

Intenté muchas formas de mantener la barra de herramientas fija, sin cambiar el tamaño ni comprimir el diseño de android: windowSoftInputMode = "adjustResize", eso no es correcto.

Eso solo es posible por el diseño del Coordinador,

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:card_view="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <android.support.design.widget.CollapsingToolbarLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" xmlns:ripple="http://schemas.android.com/apk/res-auto" android:id="@+id/tv_toolbar" android:layout_width="match_parent" android:layout_height="50dp" android:background="#fff" ripple:contentInsetStart="0dp"> </android.support.v7.widget.Toolbar> </android.support.design.widget.CollapsingToolbarLayout> </android.support.design.widget.AppBarLayout> <ScrollView android:id="@+id/coordinate_container" android:layout_width="match_parent" android:layout_height="match_parent" android:marginTop="56dp"> </ScrollView>

Mantener la estructura como

Coordinator layout |-->Toolbar (android:id="@+id/toolbar") |-->ScrollView (android:layout_below="@id/toolbar") |-->Child |-->Child |-->Child


O añada esta línea en manifiesto. android:windowSoftInputMode="adjustResize"


Si no desea que su Toolbar de Toolbar se suba, no debe usar el adjustPan . El uso de adjustResize sin ninguna otra cosa (sin agregar ninguna vista adicional) debería ser suficiente.


Usando android:windowSoftInputMode="adjustNothing" en la actividad en el manifiesto trabajado para mí.


Uso un CoordinatorLayout como diseño raíz para la barra de herramientas. Tuve el mismo problema pero lo resolví configurando la barra de herramientas para:

app:layout_scrollFlags="enterAlways"

en lugar de:

app:layout_scrollFlags="scroll|enterAlways"

y añadiendo:

android:windowSoftInputMode="adjustNothing"

En la actividad en el manifiesto.


prueba esto,

android:windowSoftInputMode="adjustPan"

en su manifest.xml en la etiqueta de actividad.


<include android:id="@+id/toolbar_home" layout="@layout/toolbar_home" android:elevation="5dp" android:layout_alignParentTop="true" />