TabLayout+ViewPager撤消左右滑动切换功能
2017-02-15 16:43
369 查看
要求某种情况下ViewPager和TabLayout取消滑动保留点击,那么我们只需要重写这个方法就可以禁止ViewPager滑动就行了
import android.content.Context;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.view.MotionEvent;
public class NoSrcollViewPage extends ViewPager {
private boolean isCanScroll = false;
public NoSrcollViewPage(Context context) {
super(context);
}
public NoSrcollViewPage(Context context, AttributeSet attrs) {
super(context, attrs);
}
public void setScanScroll(boolean isCanScroll) {
this.isCanScroll = isCanScroll;
}
@Override
public void scrollTo(int x, int y) {
super.scrollTo(x, y);
}
@Override
public boolean onTouchEvent(MotionEvent arg0) {
// TODO Auto-generated method stub
if (isCanScroll) {
return super.onTouchEvent(arg0);
} else {
return false;
}
}
@Override
public void setCurrentItem(int item, boolean smoothScroll) {
// TODO Auto-generated method stub
super.setCurrentItem(item, smoothScroll);
}
@Override
public void setCurrentItem(int item) {
// TODO Auto-generated method stub
super.setCurrentItem(item);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent arg0) {
// TODO Auto-generated method stub
if (isCanScroll) {
return super.onInterceptTouchEvent(arg0);
} else {
return false;
}
}
}
import android.content.Context;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.view.MotionEvent;
public class NoSrcollViewPage extends ViewPager {
private boolean isCanScroll = false;
public NoSrcollViewPage(Context context) {
super(context);
}
public NoSrcollViewPage(Context context, AttributeSet attrs) {
super(context, attrs);
}
public void setScanScroll(boolean isCanScroll) {
this.isCanScroll = isCanScroll;
}
@Override
public void scrollTo(int x, int y) {
super.scrollTo(x, y);
}
@Override
public boolean onTouchEvent(MotionEvent arg0) {
// TODO Auto-generated method stub
if (isCanScroll) {
return super.onTouchEvent(arg0);
} else {
return false;
}
}
@Override
public void setCurrentItem(int item, boolean smoothScroll) {
// TODO Auto-generated method stub
super.setCurrentItem(item, smoothScroll);
}
@Override
public void setCurrentItem(int item) {
// TODO Auto-generated method stub
super.setCurrentItem(item);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent arg0) {
// TODO Auto-generated method stub
if (isCanScroll) {
return super.onInterceptTouchEvent(arg0);
} else {
return false;
}
}
}
import android.os.Bundle; import android.support.design.widget.TabLayout; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.support.v7.app.AppCompatActivity; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { private NoSrcollViewPage vp; private List<String> titles=new ArrayList<>(); private List<Fragment> fragments=new ArrayList<>(); private TabLayout tab; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); titles.add("aaaa"); titles.add("bbbb"); titles.add("cccc"); titles.add("dddd"); titles.add("eeee"); titles.add("ffff"); vp = (NoSrcollViewPage) findViewById(R.id.searchglobal_viewpager); tab = (TabLayout) findViewById(R.id.searchglobal_tablayout); for (int i = 0; i < titles.size(); i++) { NoScrollFragment noScrollFragment = NoScrollFragment.createNoScrollFragment(i); fragments.add(noScrollFragment); } MyAdapter adapter = new MyAdapter(getSupportFragmentManager()); vp.setAdapter(adapter); tab.setupWithViewPager(vp); } class MyAdapter extends FragmentPagerAdapter{ public MyAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { return fragments.get(position); } @Override public int getCount() { return fragments!=null?fragments.size():0; } @Override public CharSequence getPageTitle(int position) { return titles.get(position); } } }
相关文章推荐
- ViewPager撤消左右滑动切换功能
- Android ViewPager撤消左右滑动切换功能实现代码
- ViewPager撤消左右滑动切换功能
- ViewPager撤消左右滑动切换功能
- ViewPager撤消左右滑动切换功能
- TabLayout+View Pager+Fragment 实现页面左右滑动切换
- TabLayout+Fragment+ViewPager顶部菜单可滑动切换
- Fragment利用ViewPager实现左右滑动--第三方开源--SlidingTabLayout和SlidingTabStrip实现
- 使用TabLayout、ViewPager和Fragment实现顶部菜单可滑动切换
- Android TabLayout、ViewPager实现顶部和底部Tab导航 点击滑动切换Tab页面
- 使用TabLayout、ViewPager和Fragment实现顶部菜单可滑动切换
- android app主题UI界面框架搭建 tablayout+Viewpager+fragment 导航栏滑动和点击切换界面
- 使用TabLayout、ViewPager和Fragment实现顶部菜单可滑动切换
- 解决TabLayout+viewpager 滑动切换时 布局文件不是从头显示
- 利用ViewPageIndicator+ViewPager实现左右滑动带图标tab标签功能
- TabLayout让Fragment在ViewPager中的滑动切换更优雅
- 使用TabLayout、ViewPager和Fragment实现顶部菜单可滑动切换
- 使用TabLayout、ViewPager和Fragment实现顶部菜单可滑动切换
- Android 使用TabLayout、ViewPager和Fragment实现顶部菜单可滑动切换
- ViewPager取消左右滑动切换功能