Busqué en Google mi pregunta pero no se proporcionó una respuesta que funcione. ¿Cómo agrego una lista con viñetas a mi vista de texto?
89
Difícil de hacer, ya que no se admiten ul / li / ol. Afortunadamente, puedes usar esto como azúcar sintáctico:
• foo<br/>
• bar<br/>
• baz<br/>
•
es la entidad html para una lista de viñetas. Más opciones están aquí http://www.elizabethcastro.com/html/extras/entities.html
más sobre qué etiquetas son compatibles proporcionadas por Mark Murphy (@CommonsWare) http://commonsware.com/blog/Android/2010/05/26/html-tags-supported-by-textview.html Cargue eso con Html.fromHtml
((TextView)findViewById(R.id.my_text_view)).setText(Html.fromHtml(myHtmlString));
<string name="string_name"><![CDATA[ • foo<br /> • bar... ]]></string>
ul
/li
es compatible ahora stackoverflow.com/questions/9754076/…Browep explicó bien el camino sobre HTML. La solución proporcionada con la entidad html puede ser útil. Pero incluye solo la bala. Si su texto se ajusta, la sangría no será correcta.
Encontré otras soluciones que incorporan una vista web. Eso tal vez sea apropiado para algunos, pero creo que es un poco exagerado ... (Lo mismo con el uso de una vista de lista).
Me gusta el enfoque creativo de Nelson : D, pero no te da la posibilidad de agregar una lista desordenada a una vista de texto.
Mi ejemplo de una lista desordenada con viñetas usando BulletSpan
Positivo:
Negativo:
fuente
Encontré una alternativa ... simplemente copie esta viñeta "•" (es un texto) y péguela en el texto de su vista de texto, puede cambiar el color de la viñeta cambiando el color del texto y también todos los demás atributos como tamaño, alto ancho. .. :)
puede usar el atajo para obtener esta viñeta mientras escribe
para ventanas
para Mac
fuente
Inspirado por las diversas respuestas aquí, creé una clase de utilidad para que esto sea fácil . Esto creará una lista con viñetas con sangría para el texto ajustado. Tiene métodos para combinar cadenas, recursos de cadenas y recursos de matriz de cadenas.
Creará una CharSequence que puede pasar a TextView. Por ejemplo:
Espero que sea de ayuda. Disfrutar.
Nota: Esto usará la viñeta estándar del sistema, un pequeño círculo del mismo color que el texto. Si desea una viñeta personalizada, considere subclasificar BulletSpan y anularla
drawLeadingMargin()
para dibujar la viñeta que desee. Eche un vistazo a la fuente de BulletSpan para tener una idea de cómo funciona.fuente
Este es, con mucho, el más fácil ...
fuente
Extensión de Kotlin lista para usar
Uso:
Colores y tamaño:
Para cambiar el color o el tamaño de la viñeta, utilice CustomBulletSpan en lugar de BulletSpan
fuente
Una opción que utilicé fue establecer la viñeta como dibujable usando un estilo.
Uso:
fuente
android:drawableLeft=
use TextView simple con un dibujable compuesto. Por ejemplo
fuente
Aquí hay otra solución, no exactamente agregar una lista a una vista de texto, pero supongo que el objetivo es el mismo. Utiliza TableLayout, que solo necesita XML y es realmente simple para listas pequeñas ordenadas o desordenadas. A continuación, el código de muestra que utilicé para esto, no una línea de código en Java.
Positivo:
Negativo:
cada elemento de la lista se almacena como un recurso de cadena separado
y el estilo:
fuente
Aquí hay una lista con viñetas con un encabezado y una pestaña al frente de cada elemento.
fuente
Fue completamente exagerado e hizo una vista de texto personalizada.
Úselo así:
y el código:
fuente
•
, tendría que elegir otro símbolo fsymbols.com/signs/bullet-pointEncuentro que esta es la forma más fácil, deje el textView como está en el archivo xml y use el siguiente código Java. funcionó perfectamente bien para mí.
fuente
La lista con viñetas se puede crear simplemente usando el
<ul>
<li>
etiquetas y en el recurso de cadena.NO USE setText (Html.fromHtml (cadena)) para establecer la cadena en el código. Simplemente configure la cadena normalmente en xml o usando setText ( string ).
P.ej:
archivo strings.xml
archivo layout.xml
Producirá el siguiente resultado:
Las siguientes etiquetas se admiten así (directamente incrustadas en el recurso de cadena):
fuente
<ul>
\n<ul><li>a</li> \n<li>b</li> \n<li>c</li></ul>
Porque
single line text
simplemente puede usar dibujables:draw_bullet_list.xml :
Puede cambiar
shape
,size
,color
sobre la base de su requisito.fuente
Las dos opciones que tiene para hacer una lista con viñetas son
La opción 1 es la más sencilla.
fuente
otra forma de admitir las etiquetas HTML que faltan es reemplazándolas bien, como se muestra aquí
fuente
Si desea crear una lista de viñetas con estructura editText.
Me beneficié de estas referencias
Puedes usar estas viñetas
fuente