¿Cómo desactivar y activar el desplazamiento en Android ScrollView?
Soy un desarrollador android. También quiero usar un ScrollView.This ScrollView necesidad de algún tiempo deshabilitar el desplazamiento y algún tiempo permitir el desplazamiento. Pero no puedo deshabilitar el desplazamiento. Cómo implementarlo. Por favor, ayude a me.I También tratar de usar el código de algunos como
fullparentscrolling.setHorizontalFadingEdgeEnabled(false); fullparentscrolling.setVerticalFadingEdgeEnabled(false);
o
- Lista colgadaElector en ListView
- Android: ScrollView no se desplaza
- ¿Cómo puedo hacer que mi cuadro de diálogo de Android sea de pantalla completa?
- Cómo crear multiline edittext con vista de desplazamiento dentro de la actividad?
- ViewPager dentro de un ScrollView no se desliza correclty
fullparentscrolling.setEnabled(false);
Pero no funciona.
- ¿Cómo mostrar una imagen que es más grande que las dimensiones de la pantalla del teléfono?
- SurfaceView en ScrollView en 4.1
- ¿Cómo usar ScrollView en Android?
- Comprobar si un androide scrollview puede desplazarse
- Mi listview no rellena el padre
- Escaneando con múltiples RecyclerViews en Layout
- ¿Podemos usar un ScrollView dentro de un LinearLayout?
- Manejo de MotionEvent en ScrollView en Android
Prueba de esta manera
Crea tu CustomScrollview de esta manera
import android.content.Context; import android.util.AttributeSet; import android.view.MotionEvent; import android.widget.ScrollView; public class CustomScrollView extends ScrollView { private boolean enableScrolling = true; public boolean isEnableScrolling() { return enableScrolling; } public void setEnableScrolling(boolean enableScrolling) { this.enableScrolling = enableScrolling; } public CustomScrollView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } public CustomScrollView(Context context, AttributeSet attrs) { super(context, attrs); } public CustomScrollView(Context context) { super(context); } @Override public boolean onInterceptTouchEvent(MotionEvent ev) { if (isEnableScrolling()) { return super.onInterceptTouchEvent(ev); } else { return false; } } @Override public boolean onTouchEvent(MotionEvent ev) { if (isEnableScrolling()) { return super.onTouchEvent(ev); } else { return false; } } }
En tu xml
// "com.example.demo" reemplaza con tu nombre de paquete
<com.example.demo.CustomScrollView android:id="@+id/myScroll" android:layout_width="match_parent" android:layout_height="wrap_content" > </com.example.demo.CustomScrollView>
En su actividad
CustomScrollView myScrollView = (CustomScrollView) findViewById(R.id.myScroll); myScrollView.setEnableScrolling(false); // disable scrolling myScrollView.setEnableScrolling(true); // enable scrolling
Puse el listener del tacto para la visión de la voluta y en el método del onTouch i returend verdadero. Eso hizo el truco para mí.
mScrollView.setOnTouchListener( new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { return true; } });
Mejor para todos
No puede deshabilitar el desplazamiento de ScrollView. Tendría que extender a ScrollView y reemplazar el método onTouchEvent para devolver false cuando alguna condición coincide.
Puede modificar ScrollView de la siguiente manera para deshabilitar el desplazamiento
class LockableScrollView extends ScrollView { ... // true if we can scroll (not locked) // false if we cannot scroll (locked) private boolean mScrollable = true; public void setScrollingEnabled(boolean enabled) { mScrollable = enabled; } public boolean isScrollable() { return mScrollable; } @Override public boolean onTouchEvent(MotionEvent ev) { switch (ev.getAction()) { case MotionEvent.ACTION_DOWN: // if we can scroll pass the event to the superclass if (mScrollable) return super.onTouchEvent(ev); // only continue to handle the touch event if scrolling enabled return mScrollable; // mScrollable 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 (!mScrollable) return false; else return super.onInterceptTouchEvent(ev); } }
Para la referencia furthe aquí es la solución completa en desbordamiento de la pila también! ¿Deshabilitar ScrollView mediante programación?
Marca esto como respuesta para ayudar a otros .. gracias
Pruebe esto, esto desactivará la función de desplazamiento.
scrollview.setEnabled(false);
- HttpClient falla con Handshake Falló en Android 5.0 Lollipop
- Cómo cargar archivos en la unidad de google con mi aplicación de Android