嘿家伙我有一个fragmentPagerAdapter,里面有3个片段.如何禁用3个片段之间的滑动,以便用户只使用tabview在片段之间进行?
干杯!
private class ViewPagerAdapter extends FragmentPagerAdapter { ArrayListfragments = new ArrayList<>(); ArrayList tabTitles = new ArrayList<>(); public ViewPagerAdapter(android.support.v4.app.FragmentManager fragmentManager) { super(fragmentManager); } @Override public Fragment getItem(int position) { return fragments.get(position); } @Override public int getCount() { return fragments.size(); } @Override public CharSequence getPageTitle(int position) { return tabTitles.get(position); } public void addFragments(Fragment fragment, String titles) { this.fragments.add(fragment); this.tabTitles.add(titles); } }
Abhriya Roy.. 6
您可以像这样设置自定义视图寻呼机: -
public class LockableViewPager extends ViewPager { private boolean swipeable; public LockableViewPager(Context context) { super(context); } public LockableViewPager(Context context, AttributeSet attrs) { super(context, attrs); this.swipeable = true; } @Override public boolean onTouchEvent(MotionEvent event) { if (this.swipeable) { return super.onTouchEvent(event); } return false; } @Override public boolean onInterceptTouchEvent(MotionEvent event) { if (this.swipeable) { return super.onInterceptTouchEvent(event); } return false; } public void setSwipeable(boolean swipeable) { this.swipeable = swipeable; } }
然后在布局中,您可以将其设置为: -
然后打电话
setSwipeable(false)
希望能帮助到你.
您可以像这样设置自定义视图寻呼机: -
public class LockableViewPager extends ViewPager { private boolean swipeable; public LockableViewPager(Context context) { super(context); } public LockableViewPager(Context context, AttributeSet attrs) { super(context, attrs); this.swipeable = true; } @Override public boolean onTouchEvent(MotionEvent event) { if (this.swipeable) { return super.onTouchEvent(event); } return false; } @Override public boolean onInterceptTouchEvent(MotionEvent event) { if (this.swipeable) { return super.onInterceptTouchEvent(event); } return false; } public void setSwipeable(boolean swipeable) { this.swipeable = swipeable; } }
然后在布局中,您可以将其设置为: -
然后打电话
setSwipeable(false)
希望能帮助到你.
这里有一些关于LockableViewPager类示例的详细说明......
首先,而不是像这样标记一个ViewPager
你想创建一个像这样继承VP的自定义类
public class LockableViewPager extends ViewPager { private boolean swipeable; public LockableViewPager(Context context) { super(context); } public LockableViewPager(Context context, AttributeSet attrs) { super(context, attrs); this.swipeable = true; } @Override public boolean onTouchEvent(MotionEvent event) { if (this.swipeable) { return super.onTouchEvent(event); } return false; } @Override public boolean onInterceptTouchEvent(MotionEvent event) { if (this.swipeable) { return super.onInterceptTouchEvent(event); } return false; } public void setSwipeable(boolean swipeable) { this.swipeable = swipeable; } }
注意这个方法
@Override public boolean onInterceptTouchEvent(MotionEvent event) { if (this.swipeable) { return super.onInterceptTouchEvent(event); } return false; }
然后,您可以标记已充当ViewPager的自定义类,并拦截触摸事件
在您的activity的包含LockableViewPager的java类中
LockableViewPager viewPager; OnCreate() { viewPager = (LockableVewPager) findViewById(R.id.*id of pager*); viewPager.setSwipable(false); }
扩展您想要的类(即ViewPager)是正确的方法,除非您正在创建一个完全不同的类,行为方式不同;*祝你好运