¿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:

Blah blah

¿Cómo evito que TextView se desplace?

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

  • ¿Cómo mostrar HTML en TextView?
  • Mantener texto en TextView con drawableLeft centrado
  • Textview actuar como un terminal
  • Abrir vínculos de TextView en otra actividad, no en el navegador predeterminado
  • TextView android: ellipsize = "end" issue
  • Android TextView no se actualiza completamente
  • Deteniendo texto de división a varias líneas en los períodos en direcciones web
  • TextView.setText () con un bloque de cadenas muy largo Hilo de interfaz de usuario
  • Cómo alinear el texto dentro de TextView en Android?
  • Cómo ampliar una vista de texto en android?
  • Cómo crear una contraseña entera EditText mediante programación
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.