PDA

Ver la Versión Completa : [ CONSULTA ] Botonera virtual de NEXUS 4 y 5


txikipiti
07/11/13, 10:51:37
Buenas,

En los nuevos NEXUS 4 y 5, que tienen una botonera virtual abajo. Mis pantallas no muestran un textview que tengo en la parte de abajo de la pantalla.

Lo cubre esta botonera de los NEXUS.
android:layout_alignParentBottom="true"


<TextView
android:id="@+id/TextView01"
android:layout_height="70px"
android:layout_width="fill_parent"
android:layout_alignParentBottom="true"
android:text="Un texto cualquiera"/>
</RelativeLayout>


¿Alguien sabe que es lo que se puede hacer para poder poner la parte inferior de nuestras pantallas por encima de la botonera virtual?

Muchas gracias.

kriogeN
07/11/13, 11:52:04
Algo debes estar haciendo mal, yo uso un HTC One S para depurar, que también tiene una botonera virtual para el botón de opciones, y aparece encima de la botonera.

txikipiti
07/11/13, 15:12:18
Puedes probar con esta app en tu HTC One S???

https://play.google.com/store/apps/details?id=com.game.petris

mocelet
07/11/13, 15:33:22
La botonera virtual no cuenta como espacio útil de pantalla, así que probablemente tengas elementos en el layout que estén forzando a otros para colocarse en su sitio.

Si en el código fuente en algún sitio calculas tamaños, ten en cuenta que no es lo mismo el tamaño de la pantalla que el tamaño que puede ocupar la aplicación.

Viendo que mezclas layouts relativos con alturas en pixels quizá vayan por ahí los tiros.

txikipiti
07/11/13, 17:45:40
Este es exactamente el LAYOUT que utilizo.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="#ffffff">

<WebView
android:id="@+id/webview01"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:layout_weight="1">
</WebView>

<WebView
android:id="@+id/webview02"
android:layout_height="70px"
android:layout_width="fill_parent">
</WebView>

</LinearLayout>


En ninguna parte del código fuente le digo que calcule ningún tamaño. Simplemente el webview de abajo sale cortado y solo pasa con los teléfonos que tienen botonera virutal.

¿Alguna idea alguien? Muchísimas gracias.

mocelet
07/11/13, 19:12:37
Usa un RelativeLayout y constrúyelo de abajo a arriba. Es decir, primero define el WebView que va abajo del todo (alineado al bottom), con su altura de 70px. Y luego el otro WebView especificando que vaya encima del que está debajo y ocupe el espacio disponible.

Según está, el webview01 te está condicionando la posición del 02. No es que la barra lo tape, es que no cabe en pantalla todo.

txikipiti
09/11/13, 09:27:25
He hecho lo que me propones. Me sigue ocurriendo lo mismo.
Podéis comprobarlo vosotros mismos. Cuando diseñas la app en eclipse. Si pones este codigo en el layout y modificas el teléfono a mostrar. Veréis de a partir del galaxy nexus. Que tiene la botonera virtual de abajo. Ocurre lo mismo.
No se ve bien el control de abajo.
¿Alguna idea?


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".FairActivity" >

<WebView
android:id="@+id/webview02"
android:layout_height="70px"
android:layout_width="fill_parent"
android:layout_alignParentBottom="true">
</WebView>

<WebView
android:id="@+id/webview01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_above="@+id/webview02" >

</WebView>
</RelativeLayout>

mocelet
09/11/13, 14:37:58
Ya probaré a ver, por si acaso mete el Web View de abajo en un Linear Layout (la altura y el align bottom se lo asignas al layout no al webview) , es como lo hago siempre y no tengo ningún problema.

txikipiti
11/11/13, 09:08:28
Por fin, solución encontrada.

No hay que poner px hay que poner dp
Si cambio 70px por 50dp funciona.

Gracias por vuestras aportaciones.