android - studio - textview html
Termine TextView con 3 puntos con el uso de maxLength (10)
Tengo un TextView en mi diseño que está wrap_content en layout_width. Se limita a un máximo de 15 caracteres, así que estoy usando maxLength.
Necesito terminar este TextView con 3 puntos (...) y sucede solo cuando le doy a layout_width un tamaño fijo con dp, algo que no quiero hacer.
Sé que es posible hacer esto por código y cortar la cadena después del carácter 15 y luego agregar los 3 puntos, pero prefiero hacerlo por XML.
¿Alguna idea de cómo terminar el texto con 3 puntos y dejarlo wrap_content?
<TextView
android:id="@+id/inbox_contactName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:lines="1"
android:maxLines="1"
android:ellipsize="end"
android:singleLine="true"
android:maxLength="15"
android:textColor="#0670b4"
android:textSize="16sp" />
MUY IMPORTANTE: ellipsize = "end" solo funciona cuando maxLength se establece en un valor que es MÁS QUE el número de caracteres en una línea. Puede usar ''wrap_content'' si alinea el extremo de TextView y comienza con cualquier otra vista.
Necesitaba hacer esto con el botón de radio y quería limitar el tamaño a una línea. Cuando usé Android:singleline="true"
, el círculo de verificación del botón de radio desapareció. Aquí está el código que finalmente funcionó:
android:ellipsize="end"
android:maxLines="1"
No hay necesidad de configurar ems. Esto probablemente también funcionará en TextView y otros componentes de la interfaz de usuario. Espero que esto ayude a alguien.
No puede usar maxLength
y Ellipsize
aunque puede definir Maximum EMS
vea el ejemplo a continuación
<TextView
android:id="@+id/tv_hist_source_lang"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:maxEms="8"
android:maxLines="1"
android:text="TextView"
android:textAppearance="?android:attr/textAppearanceMedium" />
Puedes usar
android:maxWidth="100dp"
android:maxLines="1"
android:ellipsize="end"
Sólo esto funciona para mí.
Solo puede modificar la String
cuando su longitud sea superior a 20 para agregar el tamaño de elipsis.
Supongo (a partir del comentario) que @Yaniv ya lo resolvió con un código, pero esta es la forma correcta de hacerlo (con xml). Puede ayudar a otros usuarios que aterrizan aquí. El truco es usar tanto toleftof como torightof.
<RelativeLayout>
...
<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:singleLine="true"
android:layout_toRightOf="@id/some_element1"
android:layout_toLeftOf="@id/some_element2"/>
...
<RelativeLayout>
Una de las formas más fáciles es agregar el relleno derecho y elipsis
<TextView
android:id="@+id/txtvw_contentcell_subhead"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Polem sampler, Lorem Ipsum golep tolem burop yemit noski"
android:ellipsize="end"
android:maxLines="1"
android:textColor="@color/caption_black_color"
android:textSize="@dimen/caption_size"
android:paddingRight="40dp"/>
Aquí hay un ejemplo de texto de subtítulos con límite de caracteres.
eliminar la línea de xml
android:lines="1"
android:maxLines="1"
usa este android:ellipsize="end"
Esto resolverá su problema, use la propiedad ellipsize
en su código XML
android:ellipsize="end" <!-- This makes the magic ... thing -->
android:maxEms="15" <!-- Limit of the Text -->
android:singleLine="true" <!-- In case if you want everything in one line -->
Edición: singleLine
está en desuso . Use maxlines="1"
lugar.