TextView no se adhiere a la parte superior derecha
Estoy teniendo relleno innecesario en mi objeto textview. Vamos a concentrarnos solamente en la vista superior derecha en mi foto de abajo, la que tiene 1.48
y 6.91
. Mi requisito es que el texto dibuje en la esquina superior derecha de su propio límite por lo que es "superior justificado" a la DIJACOR
y "justificado a la derecha" a +0.01
. Traté de gravity="top|right"
, includeFontPadding=false
y paddings=0
pero no sirvió. Para el segundo caso, el resultado render muestra algunos espacios adicionales después del 6.91
, por lo que no está alineado con el -0.01
continuación. ¿Cualquier persona puede compartir conmigo en cómo arreglar esto? ¡Gracias!
- cómo poner texto bajo vista de imagen
- Cómo configurar unicode en textview para mostrar emoji en android?
- Pasa la variable entre la clase de no actividad a la clase de actividad de Android
- ¿Cómo hacer clic o tocar en un texto TextView en diferentes palabras?
- Copiar texto de TextView en Android
Aquí es cómo defino el objeto textView:
<TextView android:id="@+id/priceLast" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:layout_marginTop="0dp" android:gravity="top|right" android:includeFontPadding="false" android:paddingBottom="0dp" android:paddingLeft="0dp" android:paddingRight="0dp" android:paddingTop="0dp" android:singleLine="true" android:text="@string/price" android:textColor="@color/dark_green" android:textIsSelectable="false" android:textSize="24sp" android:textStyle="bold" />
Grupo de vista raíz:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/bg_card_selector" android:orientation="vertical" android:paddingBottom="8dp" android:paddingTop="4dp" >
- Cómo configurar la cadena de respuesta JSON formateada en un TextView?
- ¿Cómo puedo hacer que mi cuadro de diálogo de Android sea de pantalla completa?
- ¿Cómo escalar / cambiar el tamaño del texto para que se ajuste a un TextView?
- TextView de anchura fija con compuesto estirable
- Nuevo carácter de línea \ n no se muestra correctamente en textView Android
- ¿Cómo solucionar este error en Android? Java.net.MalformedURLException: Protocolo no encontrado:
- Obtener id de TextView en Fragmento de FragmentActivity en ViewPager
- Android - ¿Cómo tomar un EditText (números) y luego convertirlo a un número entero para usarlo para las matemáticas?
Para el caso # 2, la razón es que en la mayoría de las fuentes, todos los dígitos tienen el mismo ancho de caracteres en píxeles. Así que el dígito "1" y "8" toman la misma cantidad de píxeles de ancho. La razón es que usted podría escribir números encima de uno a y los dígitos alinearán siempre. Esto significa que una cadena como "4.1" tendrá más píxeles vacíos en él es correcto que "4.8". La solución es usar una fuente donde cada dígito tiene un ancho compacto, o tener su propia vista que rinde los dígitos a un mapa de bits, encuentre el píxel no vacío más a la derecha y desplace el mapa de bits para alinearlo a la derecha.
El relleno que es visible para usted es el relleno de fuente por defecto, y y usted está recibiendo un poco de desajuste debido a diferentes tamaños de fuente.
Puede intentar varias cosas para solucionar este problema:
1) Trate de fijar la altura de sus TextViews (es decir, uno con DIJACOR y 1.48), por ejemplo: android: layout_height = "100dp" , esto resolverá su problema de alineación superior. Usted puede ajustar la altura según su necesidad.
2) Para espacio adicional después de "1". Si observa cuidadosamente que el espacio también está allí en 1.48, después de "1". Esto significa que la fuente tiene espacio adicional después de "1". Si nuestra hipótesis es correcta, entonces usar alguna fuente diferente solucionará este problema. Pruebe con: android: fontFamily = "sans-serif" O android: fontFamily = "sans-serif-light" O android: fontFamily = "sans-serif-condensed "
Creo que el espacio extra de la 6.91 está dentro de la fuente, y no puedes evitarlo. Para hacerlo ir todo el camino a la parte superior derecha de los padres, asegúrese de que el padre no tiene relleno.
Creo que es debido a 1. 1 es más delgada de 9 y todos los números contiene en el área por defecto. Pero usted puede agregar android:paddingRight="-1dp"
. No es saludable, pero debería funcionar.
He intentado imitar su diseño con fuentes estándar y creo que este relleno aparece debido a la diferencia de tamaño entre la cadena DIJACOR y 1.78. Tal vez usted puede tratar de agregar margenTop a DIJACOR cadena? Si los miembros de la columna de DIJACOR se relacionan con DIJACOR, entonces agregar marginTop no cambiará significativamente su diseño.
Yo diría que, quitar el relleno de DIJACOR
TextView y 1.48
TextView y agregar el margen superior a ambos. O bien marginTop
a una presentación lineal donde puede publicar paddingTop
o marginTop
según sea necesario.
Su problema son los diferentes tamaños de fuente. Hay caracteres que son más altos que un 9, como el Î. Estos caracteres también necesitan espacio por encima de los números y letras habituales. El espacio requerido no es un espaciado de fuente, por lo que la directiva XML no ayudará. Android utiliza la altura de la vista para alinear las vistas, por eso los bordes superiores concebidos no coinciden.
Me enfrenté al mismo problema y no hay manera fácil de evitarlo. Lo mejor que puede hacer es usar marginTop para el texto más grande con un margen negativo, pero que puede ser buggy cuando se trata de animaciones. Alternativamente, también puede agregar un paddingTop a la vista de otro texto.
- ¿Cómo puedo un punto de coordenadas por radio con otro punto de coordenadas y distancia en Km?
- ¿A qué se refiere el ID de sesión de audio de Android MediaPlayer?