personalizado ejemplo android textview

personalizado - alertdialog android ejemplo



Elipsis de desvanecimiento de mĂșltiples lĂ­neas en una vista de texto (0)

Puedo hacer un TextView multilínea cuyo texto esté truncado con puntos suspensivos al configurar android: ellipsize = "end", y puedo hacer una TextView de una sola línea cuyo texto se desvanece al establecer android: ellipsize = "marquee". Pero la configuración de marquesina no funciona cuando hay más de una línea en TextView.

¿Hay alguna manera de truncar el texto atenuando la última línea en un TextView de varias líneas?

Editar: puedo hacer una especie de implementación hacky usando dos TextViews por separado, y agregando un OnLayoutChangeListener al primero para verificar si el texto excederá el número de líneas X, luego cortar el texto y poner el resto en el segundo TextView, que está limitado a una línea y por lo tanto puede desvanecerse usando ellipsize = marquee.

<TextView android:id="@+id/text_one" android:layout_width="match_parent" android:layout_height="wrap_content" /> <TextView android:id="@+id/text_two" android:layout_width="match_parent" android:layout_height="wrap_content" android:ellipsize="marquee" android:singleLine="true" />

mTextOne = (TextView) v.findViewById(R.id.text_one); mTextTwo = (TextView) v.findViewById(R.id.text_two); mTextOne.addOnLayoutChangeListener(new OnLayoutChangeListener() { @Override public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) { if (mTextOne.getLineCount() > 4) { int start = mTextOne.getLayout().getLineStart(3); String twoText = mTextOne.getText().toString().substring(start); mTextTwo.setText(twoText); mTextOne.setMaxLines(3); } } });

Desafortunadamente, esperaba implementar esto para cada elemento en una lista, y no puedo encontrar una manera de hacerlo. Solo he conseguido que esto funcione para el caso de dos simples TextViews en una página estática.