¿Cómo deshabilitar el desplazamiento ScrollView?

Tratando de resolver este problema: Cómo deshabilitar pullToRefreshScrollView de escuchar a tocar Me pregunto que hay una solución, para bloquear ScrollView de la manipulación onTouchEvents sin crear una clase personalizable para él? ¿Por qué todos los methos como

gridView.getParent().requestDisallowInterceptTouchEvent(true); mScrollView.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { return false; } }); 

No funciona ¿Cuál es el problema con ellos? ¿Por qué Google implementa métodos que no funcionan?

3 Solutions collect form web for “¿Cómo deshabilitar el desplazamiento ScrollView?”

// Obtener el ScrollView

 final ScrollView myScroll = (ScrollView) findViewById(R.id.display_scrollview); 

// Desactivar Desplazamiento configurando un OnTouchListener para no hacer nada

 myScroll.setOnTouchListener( new OnTouchListener(){ @Override public boolean onTouch(View v, MotionEvent event) { return true; } }); 

// Habilitar desplazamiento quitando el OnTouchListner

 tvDisplayScroll.setOnTouchListener(null); 

Cree un ScrollView personalizado y úselo donde quiera.

 class CustomScrollView extends ScrollView { // true if we can scroll the ScrollView // false if we cannot scroll private boolean scrollable = true; public void setScrollingEnabled(boolean scrollable) { this.scrollable = scrollable; } public boolean isScrollable() { return scrollable; } @Override public boolean onTouchEvent(MotionEvent ev) { switch (ev.getAction()) { case MotionEvent.ACTION_DOWN: // if we can scroll pass the event to the superclass if (scrollable) return super.onTouchEvent(ev); // only continue to handle the touch event if scrolling enabled return scrollable; // scrollable is always false at this point default: return super.onTouchEvent(ev); } } @Override public boolean onInterceptTouchEvent(MotionEvent ev) { // Don't do anything with intercepted touch events if // we are not scrollable if (!scrollable) return false; else return super.onInterceptTouchEvent(ev); } } 

Esto se puede utilizar en el diseño

 <com.packagename.CustomScrollView android:id="@+id/scrollView" android:layout_height="fill_parent" android:layout_width="fill_parent"> </com.packagename.CustomScrollView > 

Entonces invoca

 ((CustomScrollView )findViewById(R.id.scrollView)).setIsScrollable(false); 

Prueba a ver:

  scrollView.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { // TODO Auto-generated method stub return isBlockedScrollView; } }); 
  • Android TimePicker (Estilo de rueda) no responde correctamente a los gestos de desplazamiento dentro de ScrollView
  • ¿Por qué el teclado virtual muestra o no cuando se inicia una actividad?
  • NestedScrollView (NSV) en CoordinatorLayout (CL): NSV no en la parte superior cuando se carga
  • Eliminar la pista de la barra de desplazamiento de ScrollView en Android
  • ¿Cómo puedo inhabilitar todos los eventos táctiles en todos los niños de un ViewGroup?
  • Evento de desplazamiento para recyclerview inside scrollview android
  • ¿Cómo se desplaza el texto con el buscador?
  • Crosswalk's XWalkView (una alternativa a Webview) no funciona con AppBarLayout + CoordinatorLayout
  • Uso de RelativeLayout dentro de ScrollView no se produce en desplazamiento
  • Detener ScrollView de establecer el enfoque en EditText
  • Cómo cambiar el color de la actual desplazamiento en ScrollView Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.