@StynuBlizz

Как выключить viewPager?

Ситуация такая,есть окна во viewPager и в одном из этих окон можно запустить фрагмент,и в момент когда фрагмент находиться на экране мне нужно отключить возможность проматывать экраны во viewPager, как это сделать?Может есть какой-нибудь метод у viewPager который выключает его?
  • Вопрос задан
  • 190 просмотров
Пригласить эксперта
Ответы на вопрос 1
Rou1997
@Rou1997
Простого способа нет.

Чтобы не работал swipe, нужен свой sub-class для ViewPager, с такой логикой:
import android.content.Context;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.view.MotionEvent;

public class TabItems extends ViewPager {

	public boolean mIsEnabled;
	
	public TabItems(Context context) {
		super(context);
		// TODO Auto-generated constructor stub
		init();
	}
	public TabItems(Context context, AttributeSet attrs) {
		super(context, attrs);
		init();
	}
	
	void init() {
		mIsEnabled = true;
	}
	
    @Override
    public boolean onTouchEvent(MotionEvent event) {
    	if (mIsEnabled) {
    		return super.onTouchEvent(event);
    	} else {
    		return false;
    	}
    }

    @Override
    public boolean onInterceptTouchEvent(MotionEvent event) {
    	if (mIsEnabled) {
    		return super.onInterceptTouchEvent(event);
    	} else {
    		return false;
    	}
    }
}


В случае с TabLayout, чтобы также не работали нажатия по самим вкладкам, надо также:
LinearLayout tabStrip = ((LinearLayout)tabLayout1.getChildAt(0));
        for (int i = 0; i < tabStrip.getChildCount(); i++) {
            tabStrip.getChildAt(i).setEnabled(false);
            tabStrip.getChildAt(i).setAlpha(130);
        }
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы