Ellipsize no funciona para textView dentro de listView personalizado

Tengo un listView con los objetos de encargo definidos por el xml-disposición abajo. Quiero que el textView con id "info" para ser ellipsized en una sola línea, y he intentado utilizar los atributos

android:singleLine="true" android:ellipsize="end" 

sin éxito.

Si establezco el layout_width con un ancho fijo como por ejemplo

 android:layout_width="100px" 

El texto se trunca bien. Pero por razones de portabilidad esto no es una solución aceptable.

¿Puedes detectar el problema?

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content" android:paddingBottom="5px" > <TextView android:id="@+id/destination" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textSize="22dp" android:paddingLeft="5px" /> <TextView android:id="@+id/date" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textSize="15dp" android:paddingLeft="5px" /> <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/info_table" android:layout_width="fill_parent" android:layout_height="fill_parent" android:paddingLeft="5px" android:paddingTop="10px" > <TableRow> <TextView android:id="@+id/driver_label" android:gravity="right" android:paddingRight="5px" android:text="@string/driver_label" /> <TextView android:id="@+id/driver" /> </TableRow> <TableRow> <TextView android:id="@+id/passenger_label" android:gravity="right" android:paddingRight="5px" android:text="@string/passenger_label" /> <TextView android:id="@+id/passengers" /> </TableRow> <TableRow> <TextView android:id="@+id/info_label" android:gravity="right" android:paddingRight="5px" android:text="@string/info_label"/> <TextView android:id="@+id/info" android:layout_width="fill_parent" android:singleLine="true" android:ellipsize="end" /> </TableRow> </TableLayout> 

Ellipsize está roto (vaya a votar sobre el reporte de fallos , especialmente porque dicen que no es reproducible) así que usted tiene que usar un hack menor. Utilizar:

 android:inputType="text" android:maxLines="1" 

En cualquier cosa que quieras ellipsizar. Además, no utilice singleLine , se ha desaprobado.

ACTUALIZAR:

En una inspección más cercana, el problema que usted está teniendo es que su tabla se extiende del lado derecho de la pantalla. Cambiar la definición de TableLayout a:

 <TableLayout android:id="@+id/info_table" android:layout_width="fill_parent" android:layout_height="fill_parent" android:paddingLeft="5px" android:paddingTop="10px" android:shrinkColumns="1"> 

Debe solucionar ese problema, a continuación, haga lo que he dicho anteriormente para ellipsize su TextView .

Sin utilizar propiedades obsoletas, las siguientes líneas funcionan muy bien para mí

 android:ellipsize="end" android:lines="1" android:scrollHorizontally="true" 

Ref http://code.google.com/p/android/issues/detail?id=882#c9

Tuve los mismos resultados que Steve:

Android: ellipsize = "marquee" android: scrollHorizontally = "true" android: lines = "1"

funciona perfectamente

tratar…

es decir

 android:ellipsize="marquee" android:focusable="true" android:marqueeRepeatLimit="num|marquee_forever" android:lines="1" android:focusableInTouchMode="true" android:scrollHorizontally="true" 

Ya que el letrero sólo funciona cuando se selecciona o se enfoca la vista de acuerdo con el comentario # 2 en http://code.google.com/p/android/issues/detail?id=5364

Después de revisar estos 3 temas (cerrado y reabierto) y posts anteriores, creo que la clave es terminar con TextView con un LinearLayout externo (o cualquier otro diseño que está utilizando), y establecer el " layout_width " de ancho de diseño externo Un poco más pequeña que la longitud de texto contenida en TextView. Parece que tiene que LIMITAR el ancho para hacer que el "androide: ellipsize" se comporten correctamente.

Sigue la sugerencia en este número , después de agregar todos estos atributos para hackear, también establezco el layout_width de LinearLayout externo a 240dp por ejemplo:

 <Linearlayout android:layout_width="240dp" android:layout_height="wrap_content" ...> <TextView .... android:singleLine="true" android:lines="1" android:maxLines="1" android:scrollHorizontally="true" android:ellipsize="end" android:text="this is a text which length should be longer than 240dp" /> </LinearLayout> 

Que puedo hacer con éxito el final de TextView mostrar "…", no es muy aceptable, pero funciona! Y creo que funciona si se utiliza en TextView normal o TextView en un adaptador de lista.

Aquí está mi captura de pantalla para el resultado!

Espero que ayude ^ ^

Ref de esos 3 temas:

Número 882

Número 10554

Número 31229

Encontré en algún lugar estos atributos

 <TextView ... android:singleLine="true" android:ellipsize="marquee" /> 

Funciona bien para mí (Android 1.5)

Para mí este atributo funcionó. He probado en la API 8 y en adelante

En XML

 <TextView .... android:maxLines="1" android:scrollHorizontally="true" android:ellipsize="end" .... /> 

Programáticamente

 setMaxLines(1); setEllipsize(TruncateAt.END); setHorizontallyScrolling(true); 

Si coloca TextView dentro de un grupo de vistas personalizado creado, asegúrese de medirlo nuevamente si ha cambiado la dimensión después de la medición.

Por ejemplo, calculé la nueva dimensión en onLayout. Antes de llamar a child.layout, llame al

 measureChild(child, View.MeasureSpec.makeMeasureSpec(childWidth, View.MeasureSpec.EXACTLY), View.MeasureSpec.makeMeasureSpec(childHeight, View.MeasureSpec.EXACTLY)); 

Tuve el mismo problema en la tarjeta de vista de reciclador. He resuelto esto agregando código siguiente:

  <TextView android:ellipsize="end" android:maxLines="1"/> 
  • Editar texto dentro de la vista de desplazamiento no se puede desplazar
  • Barra de herramientas Appcompat no da estilos a spinner
  • ¿Por qué tengo espacio en blanco en la parte superior y en la parte inferior de mi ImageView en mi RelativeLayout?
  • Android: Refactorización de archivos XML en Eclipse?
  • Efectos de transición de la actividad: deslice hacia la actividad superior y la escala para la actividad de la parte inferior
  • Cómo crear un AttributeSet en Android?
  • Crear una DialogPreference desde XML
  • transformar xml a html usando xslt
  • Animado (VectorDrawable) animado mediante programación en tiempo de ejecución
  • Android | SQLLite: Actualización de base de datos pre-creada sin utilizar SQLiteOpenHelper
  • Manejando espacios de nombres Xml con XmlPullParser
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.