El texto de la vista de texto se desliza hacia abajo en Android 3.0

Tengo un RealtiveLayout creado en un archivo XML ajustado para una vista de 480×320 (retrato). Todo se crea en unidades "dip". Básicamente contiene 4 vistas de texto que utilizan un cuarto de la pantalla cada una. Están todos posicionados por layout_marginLeft y layout_marginTop. La aplicación tiene una función que puede tocar en cualquiera de estas 4 vistas de texto para hacerla grande y las otras 3 disminuirán de tamaño y se alinearán una sobre la otra a la izquierda de la vista. Toque de nuevo la lectura grande y todos los 4 volverán a su tamaño inicial.

Todo esto funciona bien en diferentes dispositivos y en el emulador – pero no si el emulador ejecuta Android 3.0 o superior …

En primer lugar la aplicación no escala, así que hice algún código que calcula los tamaños de texto y el tamaño de la fuente en relación con el tamaño de la pantalla. Todo esto funciona maravillosamente, pero en Android 3.0 cosas divertidas sucede una vez que el texto se redimensiona. De repente parece que hay una línea en blanco insertada antes del texto real, lo que significa que sólo veo la parte superior del texto que quiero mostrar.

A continuación, se muestra cómo se define la vista de texto. Hay un botón transparente encima de cada lectura.

<TextView android:id="@+id/out1" android:textStyle="bold" android:typeface="serif" android:text="@string/Out1_text" android:layout_height="80dip" android:layout_width="161dip" android:layout_marginLeft="54dip" android:layout_marginTop="57dip" android:scrollHorizontally="true" android:gravity="left|top" android:maxLines="1" android:background="#7f7f7f" android:textColor="@android:color/white"/> <ImageButton android:id="@+id/BigButton1" android:background="@drawable/transparent" android:layout_marginLeft="54dp" android:layout_marginTop="57dp" android:layout_width="161dp" android:layout_height="80dp"/> 

He intentado cosas diferentes para asegurarse de que es sólo una línea de texto, he establecido la gravedad en la parte superior izquierda (aunque no es lo que quiero), pero la misma cosa sigue sucediendo.

Cambie el tamaño y la fuente del TextView y el tamaño del botón por este código:

 RelativeLayout.LayoutParams params1 = new RelativeLayout.LayoutParams(NewOut1Width, NewOut1Height); params1.setMargins(NewOut1X, NewOut1Y, 0, 0); big1Button.setLayoutParams(params1); out1_txtView.setLayoutParams(params1); out1_txtView.setTextSize(NewOut1FontSize); 

La cosa "graciosa" es que yo llamo a mi rutina de cambio de tamaño inicialmente, y todo parece bien, una vez que he hecho una gran lectura y luego volver a tamaño estándar de nuevo (con los mismos valores utilizados para la pantalla inicial, el texto de la textview Que era grande se ha movido abajo de una línea dentro del textview.

¿Alguien tiene una pista sobre lo que está pasando?

INFORMACIÓN ADICIONAL He intentado agregar un getLineBounds, y muestra que la línea de base del textView aumenta a medida que aumenta el textSize, pero no vuelve a bajar cuando el textSize disminuye. No importa si tengo gravedad en la parte superior, en el centro o en la parte inferior.

Sólo prueba esto:

Establezca el minWidth de TextView para decir 5dp y el layout_width para wrap_content. Esto significaría que cada textView necesariamente ocuparía 5dp. Además, no es necesario añadir la gravedad ya que dar el minWidth. Y, no establecer el ancho y la altura de la textView a un valor estático. Intente algo como:

 RelativeLayout.LayoutParams relativeLayoutParams = new RelativeLayout.LayoutParams(width, height); textView.setLayoutParams(relativeLayoutParams); 
  • Cómo configurar la parte de la vista de texto se puede hacer clic
  • El fondo de TextView se está estirando
  • Android sdk 18 La gravedad de TextView no funciona verticalmente
  • ¿Cómo puedo mostrar caracteres especiales (como & ndash;) en TextView?
  • TextView: lineSpacingMultiplier y lineSpacingExtra también se aplica a la última línea
  • Cómo configurar mulitple clic evento para la única textview?
  • Cómo obtener texto de textview
  • El identificador de recursos no puede ser una cadena vacía (en 'texto' con valor '?') En el atributo textAppearance
  • TextView con color de fondo sólo en el propio texto
  • Clickable TextView en Android
  • ¿Existe tal llamada de método "getBackgroundColor"?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.