Простого способа нет.
Чтобы не работал 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);
}