tutorial studio examples ejemplos android android-layout android-widget

android - studio - appwidgetprovider



¿Por qué TextView en una línea elipse con cuadros de presentación "end"? (6)

Arslan, su diseño está funcionando bien en mi caso, he probado lo mismo con:

<TextView android:id="@+id/row_title" android:layout_width="fill_parent" android:layout_height="wrap_content" android:singleLine="true" android:textSize="18sp" android:ellipsize="end" android:maxLines="1" android:text="This is the demo testing demo testing This is the demo testing demo testing"/>

... y obteniendo el resultado exacto que desee "una línea terminada con ..." y la casilla debe ser eliminada. Así que creo que puede haber algo mal con cualquier personaje o texto que estés configurando.

Estoy usando un TextView en Android, lo que quiero mostrar es una línea en TextView que termina con "." Pero da un cuadro de tipo [] al final. No sé por qué? Solo quiero quitar este recuadro y solo mostrar el texto que termina con "..."

Código de actualización para list_row.xml

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="85dp" android:orientation="horizontal" android:gravity="center_vertical" android:cacheColorHint="#4C7B8D" android:background="#4C7B8D"> <ImageView android:id="@+id/videoListImage" android:src="@drawable/audio_thumbnail60x60" android:layout_height="75dp" android:layout_alignParentLeft="true" android:layout_centerInParent="true" android:scaleType="fitXY" android:layout_width="75dp" android:padding="4dp" android:background="@color/light_gray" /> <RelativeLayout android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_marginRight="5dp" android:layout_toLeftOf="@+id/next_arrow" android:orientation="vertical" android:gravity="center_vertical" android:paddingLeft = "5dp"> <TextView android:id="@+id/row_title" android:layout_width="fill_parent" android:layout_height="wrap_content" android:singleLine="true" android:textColor="@color/app_background_color" android:textSize="18sp" android:ellipsize="end" android:maxLines="1" /> <TextView android:id="@+id/row_dis" android:layout_width="fill_parent" android:layout_height="wrap_content" android:singleLine="true" android:textColor="@color/color_black" android:layout_marginRight="2dp" android:textSize="15sp" android:ellipsize="end" android:maxLines="1" /> <TextView android:text="$7.50" android:id="@+id/audio_price_btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="16dp" android:textColor="@color/color_white" android:textStyle = "bold" android:paddingLeft = "12dp" android:paddingRight = "12dp" android:background="@drawable/blue_round_cornor_background" /> </LinearLayout> <ImageView android:id="@+id/next_arrow" android:src="@drawable/next_arrow" android:layout_toLeftOf="@+id/saved_purchased" android:scaleType="fitXY" android:layout_height="25dp" android:layout_width="18dp" android:layout_centerVertical="true" android:visibility = "gone"/> <ImageView android:id="@+id/saved_purchased" android:layout_alignParentRight="true" android:layout_alignParentTop ="true" android:scaleType="fitXY" android:layout_height="25dp" android:layout_width="25dp" android:layout_marginRight="2dp"/> </RelativeLayout>

Aquí están las imágenes de "next_arrow"

Aquí está el código. Estoy usando getView () en el adaptador.

String discription = listData.getDescription(); if (discription != null && discription.length() > 0) { if (textViewDis != null) { textViewDis.setTypeface(titleFont); Log.e("data", ""+discription); discription.replaceAll("/r/n", ""); textViewDis.setText(discription); } }

Aquí está la cadena de descripción real que se mostrará.

Andrew y Stephanie Tidwell comparten sinceramente su historia de éxito en este negocio. Esta historia ayudará a todos los que escuchan a darse cuenta de que nadie es perfecto, incluso en un negocio de segunda generación. Este es un archivo de audio de transmisión.

Todavía tengo algún problema? Puedo actualizar la pregunta más.


Citarme de uno de mis libros :

La clase TextView de Android tiene la capacidad incorporada de "elipsis" de texto, truncarlo y agregar puntos suspensivos si el texto es más largo que el espacio disponible. Puede usar esto a través del atributo android: ellipsize, por ejemplo. Esto funciona bastante bien, al menos para el texto de una sola línea. Los puntos suspensivos que usa Android no son tres períodos. Más bien utiliza un personaje real de puntos suspensivos, donde los tres puntos están contenidos en un solo glifo. Por lo tanto, cualquier fuente que utilice y que también utilice la función de "elipsis" necesitará el glifo de puntos suspensivos.

Más allá de eso, sin embargo, Android rellena la cadena que se representa en la pantalla, de modo que la longitud (en caracteres) es la misma antes y después de "elipsis". Para que esto funcione, Android reemplaza un personaje con puntos suspensivos y reemplaza a todos los demás caracteres eliminados con el carácter Unicode "ESPACIO SIN CRONOMETRO DE CERO ANCHO" (U + FEFF). Esto significa que los caracteres "extra" después de los puntos suspensivos no ocupan ningún espacio visible en la pantalla, sin embargo, pueden ser parte de la cadena.

Sin embargo, esto significa cualquier fuente personalizada que use para los widgets TextView que use con android: ellipsize también debe admitir este carácter Unicode especial. No todas las fuentes lo hacen, y obtendrás artefactos en la representación en pantalla de tus cadenas acortadas si tu fuente carece de este carácter (p. Ej., Aparecen X deshonestos al final de la línea).


En realidad, me encontré con este problema y en lugar de cambiar la fuente o usar setText acabo de agregar scrollHorizontally como falso y se corrigió el carácter de cuadro adicional

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


Hubo un problema similar que estaba enfrentando en mi proyecto en el que estaba usando un tipo de fuente para la vista de texto. algunos tipos de fuentes tienen este problema de hacer que ... aparezca como [] como último. El problema se resolvería si intenta cambiar la fuente.


Me enfrento al mismo problema (mostrar recuadros ([])) para algunos símbolos especiales cuando trato de mostrar el contenido que proviene de la url del servicio web, incluso, no uso android: ellipsize. entonces reemplazo el código de

textview.settext(content);

a

textview.settext(Html.fromHtml(content));

funcionando bien.


Me he topado con el mismo problema cuando intentaba usar "MetaPro-Medium.otf" personalizado como fuente para TextView con un android:singleLine="true" . La caja al final de la cadena era realmente molesta.

No encontré la manera de resolver este problema en Android, pero al mismo tiempo encontré el siguiente trabajo.

  1. He instalado "FontLab Studio v5.04"
  2. Abrí mi fuente
  3. Seleccionado uno de los símbolos que no iba a usar
  4. Menú-> Glifo-> Renombrar Glifo
  5. Se cambió el nombre y el índice Unicode del valor original de "FEFF" (gracias a CommonsWare)
  6. Haga doble clic en el símbolo seleccionado y luego elimine todas las líneas a partir de las cuales se creó este símbolo.
  7. Menú-> Archivo-> Generar fuente-> guardar como tipo otf

Como resultado obtuve una fuente actualizada y el problema desapareció.