No se puede crear superíndice para texto de botón de Android con Html.fromHtml ()
He leído a través de estas dos preguntas , que parecen tener el mismo problema que estoy luchando con, es decir, tengo texto para mis botones que me gustaría mostrar como un superíndice. En mi clase de fragmento en el método onCreateView
he añadido
if (rootView.findViewById(R.id.squared) != null) { ((TextView) rootView.findViewById(R.id.squared)).setText(Html.fromHtml("X <sup><small> 2 </small></sup>")); rootView.findViewById(R.id.squared).setOnClickListener(this); } if (rootView.findViewById(R.id.cubed) != null) { ((TextView) rootView.findViewById(R.id.cubed)).setText(Html.fromHtml("X <sup><small> 3 </small></sup>")); rootView.findViewById(R.id.cubed).setOnClickListener(this);
En mi fragment_main
los botones están codificados como
- ¿Cómo mostrar las cantidades formateadas en TextView?
- Diálogo de alerta con un campo numérico de EditText
- ¿Cómo obtener el formato de fecha seleccionado por el usuario en Android?
- Cómo dar formato a longs en android para siempre mostrar dos dígitos
- Establecer TextView texto de html-formatted cadena recurso en XML
<Button android:layout_height="match_parent" android:layout_width="0dp" android:fontFamily="helvetica" android:id="@+id/squared" android:layout_weight="0.25" style="?android:attr/borderlessButtonStyle" android:textSize="15sp" /> <Button android:layout_height="match_parent" android:layout_width="0dp" android:fontFamily="helvetica" android:id="@+id/cubed" android:layout_weight="0.25" style="?android:attr/borderlessButtonStyle" android:textSize="15sp" />
Sin embargo, cuando ejecuto mi aplicación el diseño no contiene ningún texto superíndice.
Incluso cuando cambio el tamaño de texto de 15sp
a 10sp
, el texto sólo se hace más pequeño, pero no superpuesto. ¿Qué no estoy haciendo correctamente?
- Formato de etiqueta de fecha / hora de eje-x de MPAndroidChart
- Mostrar la fecha Y la hora en la configuración regional del usuario
- Cómo mostrar sólo la hora actual utilizando DateFormat.getDateTimeInstance () en android
- Java (Android) convertir la fecha de SQLite a "x días atrás"
- Mostrar <ul> <li> en la vista de texto de android
- Formateo de la descripción de la aplicación de Google Play
- Android: Obtener el día de la semana a partir de la fecha?
- Formatear automáticamente el número de teléfono en EditText
Me gustaría comentar si pudiera, pero en este momento no puedo. Simplemente he publicado algo similar a esto, un problema que estoy teniendo también. Tuve mi problema resuelto a medio camino. El método Html.fromHtml funciona para mí sólo en un textview, pero no en mis butons. Sólo quería decir esto en caso de que le ayuda a usted o cualquier otra persona averiguar cómo emplear este método en los botones. Me gustaría mucho la respuesta.
Básicamente: textview.setText(Html.fromHtml("x<sup>2</sup"));
muestra correctamente
PERO button.setText(Html.fromHtml("x<sup>2</sup"));
muestra x2 (sin superíndice).
EDIT: AlanV me ayudó. Aquí hay un enlace a la solución que proporcionó a alguien más. https://stackoverflow.com/a/29056795/4535064
Todo lo que necesitas hacer es añadir esto a tu botón:
<button android:textAllCaps="false";/>
La nueva versión 5.0 (creo) obliga a los botones a producir todas las tapas. Esto es algo que noté cuando produjo la misma cadena en un textview y un botón, y el botón era todos los mayúsculos mientras que el textview no era. Debido a esto, no ve el formato HTML como y. Establecer la característica textAllCaps como "false" permite utilizar el HTML.
Una vez más, dando crédito donde es debido, AlanV es el hombre! Todos los derechos reservados
Este es un problema conocido, como se muestra aquí .
Creo que lo mejor que puedes hacer es configurar android: textAllCaps = "false" , y luego configurar el texto para ser capitalizado por ti mismo.
- reaccionar-nativo cómo agregar la imagen y onpress en touchable
- Recycler View Excepción grave: java.lang.ArrayIndexOutOfBoundsException