Android: El uso de adjustPan y adjustResize no funciona, pero necesito ambos

No he decidido oficialmente si quiero dirigir esta ruta o no pero tengo un adview en mi documento de XML. El documento XML contiene un diseño Relativo que contiene ScrollView y Adview. El Adview se pega en la parte inferior de la disposición relativa mientras que el scrollview está en todas partes.

Cuando un usuario se centra en un edittext dentro de mi aplicación, algunos de la página sería cortada. Lo solucioné agregando:

android:windowSoftInputMode="adjustPan" 

Pero entonces el problema se convirtió en que mi AdView se corta cada vez que el usuario tiene el teclado abierto. Así que para solucionar ese problema cambié el manifiesto de Android a:

 android:windowSoftInputMode="adjustResize" 

Que mantuvo el AdView en la parte superior del teclado, pero ahora el Adview cubre parte del contenido de la aplicación. Me preguntaba si había una manera de tener el contenido de mi aplicación no se cubre y mantener el AdView por encima del teclado cuando aparece?

He intentado esto pero no funcionó:

 android:windowSoftInputMode="adjustPan|adjustResize" 

No estoy seguro si realmente quiero ir por esa ruta, sólo quiero la elección. Parece un poco molesto en mi opinión.

No puede ajustar adjustPan y adjustResize al mismo tiempo. Significan comportamientos completamente diferentes y conflictivos. Sólo afectan a cómo se comporta su vista raíz cuando el teclado aparece o desaparece.

adjustPan significa "Cuando el teclado aparece, si una vista detrás del teclado gana el foco, mueva la vista hacia arriba para que el usuario pueda verla", pero no permite al usuario mover la vista alrededor de sí mismos.

adjustResize significa "Cuando aparezca el teclado, cambie la altura de la vista para que se ajuste por encima del teclado". Eso no significa que su vista se adapte correctamente para encajar en ese espacio – que es su trabajo.

Suena como lo que usted está tratando de hacer es tener un ScrollView por encima del anuncio que está pegado a la parte inferior de la raíz de vista RelativeLayout. En su caso, definitivamente desea usar adjustResize para hacer que el RelativeLayout adjustResize de tamaño a una altura más corta. Esto, a su vez, mueve el anuncio hasta la parte superior del teclado como describió. Entonces usted tiene que asegurarse de que el ScrollView principal siempre está por encima del anuncio y no de alguna manera escondido detrás de él. Es probable que desee un diseño que se parezca a esto:

 <RelativeLayout android:layoutWidth="match_parent" android:layoutHeight="match_parent"> <ScrollView android:layoutWidth="match_parent" android:layoutHeight="match_parent" android:layoutAbove="@+id/advert_view"> <!-- Your scrolling views go here --> </ScrollView> <AdvertView android:id="@id/advert_view" android:layoutWidth="match_parent" android:layoutHeight="wrap_content" android:alignParentBottom="true" /> </RelativeLayout> 

Tenga en cuenta que el ScrollView dice que quiere ser la altura del padre, pero establecidos por encima de la AdvertView. Esto significa que no está detrás del AdvertView en el borde inferior y podrá desplazarse a cualquier elemento que exista dentro del ScrollView.

  • Una manera más rápida o más limpia de averiguar si un paquete está instalado en Android
  • No se puede crear una carpeta en el almacenamiento externo en android
  • ¿Cómo mover el primer elemento del arraylist a la última posición?
  • Problema de desacoplamiento de parcelables
  • Entero aleatorio: Android
  • GetWidth no devuelve valor diferente después de escalar
  • Uso de las clases Fragment y AppCompatActivity juntos
  • Android Facebook Graph api información básica que solicita
  • Android: ¿cómo cambiar el color del divisor datepicker?
  • Android: Administración de varias notificaciones en la barra de estado
  • Cómo revertir el enum?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.