Как отключить и включить прокрутку на экране прокрутки Android?

Я разработчик Android. Я также хочу использовать ScrollView.This ScrollView нужно некоторое время отключить прокрутку и некоторое время включить прокрутку. Но я не могу отключить прокрутку. Как я его реализую. Пожалуйста, помогите мне.I Также попробуйте использовать некоторый код, например,

fullparentscrolling.setHorizontalFadingEdgeEnabled(false); fullparentscrolling.setVerticalFadingEdgeEnabled(false); 

или

  fullparentscrolling.setEnabled(false); 

Но это не работает.

Solutions Collecting From Web of "Как отключить и включить прокрутку на экране прокрутки Android?"

Попробуйте этот путь

Создайте свой профиль CustomScrollview следующим образом:

 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; } } } 

В вашем xml

// "com.example.demo" заменить на ваше имя_пакета

 <com.example.demo.CustomScrollView android:id="@+id/myScroll" android:layout_width="match_parent" android:layout_height="wrap_content" > </com.example.demo.CustomScrollView> 

В вашей деятельности

 CustomScrollView myScrollView = (CustomScrollView) findViewById(R.id.myScroll); myScrollView.setEnableScrolling(false); // disable scrolling myScrollView.setEnableScrolling(true); // enable scrolling 

Я установил on touch прослушиватель для просмотра прокрутки и в методе onTouch i returend true. Это помогло мне.

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

Лучшее для всех

Вы не можете отключить прокрутку ScrollView. Вам нужно будет расширить до ScrollView и переопределить метод onTouchEvent, чтобы вернуть false, когда какое-либо условие согласовано.

Вы можете изменить ScrollView следующим образом, чтобы отключить прокрутку

 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); } } 

Для справки здесь полное решение о переполнении стека тоже! Отключить прокруткуView Programmatically?

Отметьте это как ответ для других.

Попробуйте это, это отключит функцию прокрутки.

 scrollview.setEnabled(false);