Android setMovementMethod en un TextView dentro de un ListView
Dentro de una vista de lista tengo en cada fila un texto que se trunca porque es demasiado largo. Así que establezco el setMovementMethod () en el textView para hacerlo desplazable. Pero ahora no se puede hacer clic en ListView. ¿Como puedó resolver esté problema?
A continuación se muestra el método getView () del adaptador. Agradecería cualquier respuesta, gracias de antemano.
- Cambiar el fondo con la animación cuando el usuario hace clic en él
- Centrar el contenido de TextView vertical y horizontalmente - LinearLayout
- Cambiar el tamaño de fuente de un elemento textview en android
- Superposición de texto sobre imageview en framelayout mediante programación - Android
- Agregar más de una cadena a un TextView
@Override public View getView(int position, View convertView, final ViewGroup parent) { final ViewHolder holder; if (convertView == null) { convertView = mInflater.inflate(R.layout.list_row, null); holder = new ViewHolder(); holder.nameLabel = (TextView) convertView.findViewById(R.id.name); convertView.setTag(holder); holder.nameLabel.setMovementMethod(ScrollingMovementMethod.getInstance()); } else { holder = (ViewHolder) convertView.getTag(); } return convertView; }
- ¿Cómo manejar texto largo en las preferencias de Android?
- Resaltar todas las palabras que se buscan a través de EditText
- Cómo ajustar texto a la siguiente línea en un Android TextView?
- ¿Cómo puedo poner un borde alrededor de una vista de texto de Android?
- Android-TextView setText en Html.fromHtml para mostrar la imagen y el texto
- Envoltura de texto mediante simple_list_item_multiple_choice
- Expanda TextView con wrap_content hasta que la vista de vecino llegue al final del padre
- Ellipse de líneas individuales de SpannableString en un TextView
Después de todo, me las arreglé para resolver este problema. Implementé el OnTouchListener dentro del adaptador y lo configuré en la vista de texto. La lógica para el evento táctil es: Comprobar si el evento táctil es un toque o un golpe. Si se trata de un golpe el desplazamiento / desplazamiento se llevará a cabo y si es un toque de llamar al método que utilizo para el evento clickView de la lista.
@Override public boolean onTouch(View v, MotionEvent motionEvent) { switch (motionEvent.getAction()) { case MotionEvent.ACTION_DOWN: mIsScrolling = false; mDownX = motionEvent.getX(); break; case MotionEvent.ACTION_MOVE: float deltaX = mDownX - motionEvent.getX(); if ((Math.abs(deltaX) > mSlop)) { // swipe detected mIsScrolling = true; } break; case MotionEvent.ACTION_CANCEL: case MotionEvent.ACTION_UP: if (!mIsScrolling) { openNewScreen(v); // this method is used for click listener of the ListView } break; } return false; }
- Acerca de la seguridad de Sqlite en android en caso de varios procesos
- Pobre Pan, Escala de rendimiento en la vista Web de Android con HTML5 Canvas y KineticJS