¿Qué diseño se debe utilizar para mostrar un "pie de página" en función del resto del contenido de la pantalla

En primer lugar, mis disculpas por el título. Pensé largo y difícilmente para elegir un título más descriptivo pero no podría encontrar realmente uno.

Tengo una pantalla con un encabezado (longitud variable – usando barra de deslizamiento), una parte media (scrollview) y una parte inferior para mostrar anuncios (longitud fija). Puedo escribir la pantalla usando RelativeLayout pero lo que realmente quisiera hacer es esto:

  • Si el contenido del scrollview (la parte media) no es lo suficientemente largo para llenar la pantalla (incluido el encabezado), me gustaría mostrar el anuncio en la parte inferior de la pantalla
  • Si el contenido de scrollview + encabezado es más largo que la pantalla, me gustaría mostrar el anuncio debajo del contenido de la vista de desplazamiento, lo que significa que no es visible a menos que el usuario se desplace a la parte inferior del fragmento.

Imagine el contenido de la vista de desplazamiento como un texto breve o una imagen + un texto largo. Para el primer caso, el contenido de la vista de desplazamiento será corto y por lo tanto, idealmente mostraría el anuncio en la parte inferior de la pantalla ya que tengo espacio suficiente, pero si es imagen + texto, será más grande que la altura de la pantalla y como tal , Me gustaría mostrar el anuncio después de que el usuario haya desplazado hacia abajo.

La razón por la que quiero hacer esto es para que el anuncio no necesariamente espacio si hay contenido útil en la pantalla (experiencia del usuario).

¿Hay alguna manera de lograr esto en android sin escribir mi propio diseño personalizado? Si es así, ¿qué punto de vista recomendaría?

Muchas gracias de antemano,

No creo que haya tal disposición. Puede hacerlo mediante programación. El ScrollView siempre tiene un solo hijo para que pueda obtener la altura del contenido de esta manera:

 int contentHeight = scrollView.getChildAt(0).getHeight(); 

Puede obtener la altura de la ventana de esta manera

 Display display = getWindowManager().getDefaultDisplay(); Point size = new Point(); display.getSize(size); int windowHeight = size.y; 

La altura del encabezado y el pie de página está fija para que pueda hacer las matemáticas decidir dónde colocar el pie de página.

 int totalHeight = heaederHeight + contentHeight + footerHeight if(totalHeight < windowHeight) { // add the footer to the scrollview } else { // add the footer below the scrollview } 

Los contras de este enfoque es que usted tiene que hacer toda la magia manualmente.

Espero que esto te ayude 🙂

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.