¿Cómo evito completamente que TextView se desplace?
Tengo un TextView con mucho texto. Este TextView tiene maxLines
establecido, por lo que sólo muestra las primeras 8 o más líneas. También tengo un botón "Read More" (Leer más), así que me encargo de ampliar el TextView por mi cuenta.
Mi problema es que a veces el TextView se desplaza un poco (sólo la mitad de una línea a la vez), aunque nunca especificó ninguna barra de desplazamiento. Este problema se agrava porque el TextView está dentro de un ListView, por lo que cuando el usuario desplaza el ListView principal, el TextView a veces se desplaza un poco, como esto:
- Multilínea de Android TextView, comprueba si el texto se ajusta o comprueba si TextView está lleno
- Hipervínculo de TextView de Android
- Cómo cambiar el espaciado de letras en una vista de texto?
- Android: cómo agregar Icono en el lado izquierdo de la TextView
- ¿Cómo actualizar el texto del diseño de la cabecera cada segundo en cualquier actividad y mostrar en todas las pantallas?
¿Cómo evito que TextView se desplace?
- Cómo escribo una fracción en el estudio android
- Cómo procesar textview para HTML y Linkify
- Cómo obtener el ancho de textView en android
- ¿Por qué TextView.setTypeface () aumenta exageradamente mi altura TextView cuando uso la fuente Roboto-Italic.ttf?
- ¿Cómo comprobar si un EditText en Android tiene emoticon o no?
- Cómo animar el textview (texto muy largo) desplazarse automáticamente horizontalmente
- TextView no se ajusta a la pantalla
- ¿Es posible tener múltiples tipos de letra en el mismo TextView?
Tengo el mismo problema, Mi solución es crear un NoScrollTextView extiende TextView como este
public class NoScrollTextView extends TextView { public NoScrollTextView(Context context) { super(context); } public NoScrollTextView(Context context, AttributeSet attrs) { super(context, attrs); } public NoScrollTextView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @TargetApi(Build.VERSION_CODES.LOLLIPOP) public NoScrollTextView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); } @Override public void scrollTo(int x, int y) { //do nothing } }
Configurar scrollTo no hacer nada
Así que hice un poco de investigación y no creo que sea tan simple como desactivar el desplazamiento, pero hay algunas cosas que puede hacer / intentar.
El primero es setEnabled (false), pero esto desactivará los vínculos y alterará el color del texto.
La segunda, que sugiero intentar, está utilizando el método scrollTo (int x, int y). Sólo scrollTo (0,0) después de configurar el texto de la TextView, mi conjetura es el texto grande es la única cosa que causa el desplazamiento por lo que debería ser capaz de cuidar de ella.
La tercera respuesta que encontré que se puede probar es un poco más complicado y no exactamente su pregunta, pero puede funcionar para usted se puede encontrar aquí .
public class LinkMovementMethodOverride implements View.OnTouchListener{ @Override public boolean onTouch(View v, MotionEvent event) { TextView widget = (TextView) v; Object text = widget.getText(); if (text instanceof Spanned) { Spanned buffer = (Spanned) text; int action = event.getAction(); if (action == MotionEvent.ACTION_UP || action == MotionEvent.ACTION_DOWN) { int x = (int) event.getX(); int y = (int) event.getY(); x -= widget.getTotalPaddingLeft(); y -= widget.getTotalPaddingTop(); x += widget.getScrollX(); y += widget.getScrollY(); Layout layout = widget.getLayout(); int line = layout.getLineForVertical(y); int off = layout.getOffsetForHorizontal(line, x); ClickableSpan[] link = buffer.getSpans(off, off, ClickableSpan.class); if (link.length != 0) { if (action == MotionEvent.ACTION_UP) { link[0].onClick(widget); } else if (action == MotionEvent.ACTION_DOWN) { // Selection only works on Spannable text. In our case setSelection doesn't work on spanned text //Selection.setSelection(buffer, buffer.getSpanStart(link[0]), buffer.getSpanEnd(link[0])); } return true; } } } return false; } }
"Después de que se aplican a la vista de texto de destino como oyente de contacto: –
Textview.setOnTouchListener (nuevo LinkMovementMethodOverride ()); "
Pruebe estas líneas de código en xml
android:isScrollContainer="false" android:ellipsize="end"
Necesitaba función como ver más en mi proyecto y he utilizado ellipsizing textview desde este post SO. Funciona como un encanto y también proporciona una interfaz para comprobar si el texto fue ellipsized. Esto debería funcionar.
Sólo use setMinLines () para mostrar siempre todo el texto
- Aplicar estilo de Android a TextView personalizado
- Mejor Dagger dependencia inyección basada en tipo de construcción y sabor?