我禁用使用TabLayout滑动ViewPager,如下所示:
public class NonScrollableViewPager extends ViewPager {
public NonScrollableViewPager(Context context) {
super(context);
init(context, null);
}
public NonScrollableViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
init(context, attrs);
}
private void init(Context context, AttributeSet attrs) {
setImportantForAccessibility(IMPORTANT_FOR_ACCESSIBILITY_NO);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
// Never allow swiping to switch between pages
return false;
}
@Override
public boolean onTouchEvent(MotionEvent event) {
// Never allow swiping to switch between pages
return false;
}
}
在选择选项卡之一时,如何防止其他选项卡可点击,然后进行计算,然后启用可点击。 ViewPager.setClickable(false)
和setEnabled()
不起作用
disable clickable
// do something
enable clickable
该怎么做?
答案 0 :(得分:0)
我假设您正在将TabLayout和ViewPager一起使用。因此,您需要执行以下操作
LinearLayout tabStrip = ((LinearLayout) your_tab_layout.getChildAt(0));
for(int i = 0; i < tabStrip.getChildCount(); i++) {
tabStrip.getChildAt(i).setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
return true;
}
});
}
对于API 24及更高版本
your_tab_layout.clearOnTabSelectedListeners();
希望这会有所帮助