网站定制方案,贵阳网站商城建设,西安制作网站,做介绍翻译英文网站目录1 背景用ViewPagerBottomNavigationView多个Fragment快速搭建的页面切换架构#xff0c;一个有四个页面#xff0c;因为测试需要#xff0c;需要屏蔽掉中间的两个#xff0c;做法是#xff1a;设置不可点击选择#xff1a;xml布局文件中#xff0c;BottomNavigation…目录1 背景用ViewPagerBottomNavigationView多个Fragment快速搭建的页面切换架构一个有四个页面因为测试需要需要屏蔽掉中间的两个做法是设置不可点击选择xml布局文件中BottomNavigationView的app:menu属性为各页的item将不想显示的页面item的android:enabled属性设置为false此时对应的页面就无法显示了设置BottomNavigationView不可滑动但是BottomNavigationView没有对应的方法支持这个功能。2 自定义ViewPager实现【原理】写一个CustomViewPager类继承ViewPager然后重写onTouchEvent、onInterceptTouchEvent另外添加了setSlidingEnable方法外部传参开启或禁止滑动。这里简单解释下onInterceptTouchEvent方法作用判断是否拦截上面touch的事件参数——return false: 不对事件进行拦截放行该事件。事件会被传递到当前的View的子控件中由子控件中的dispatchTouchEvent方法进行分发处理——return true: 拦截该事件将该事件交给当前View的onTouchEvent方法进行处理【代码】public class CustomViewPager extends ViewPager{// the sliding page switchprivate boolean isSlidingEnable true ;public CustomViewPager(Context context){super(context);}public CustomViewPager(Context context, AttributeSet attrs){super(context, attrs);}//重写此函数Overridepublic boolean onTouchEvent(MotionEvent ev){return this.isSlidingEnable;}//重写此函数Overridepublic boolean onInterceptTouchEvent(MotionEvent ev){return this.isSlidingEnable;}public void setSlidingEnable(boolean slidingEnable){isSlidingEnable slidingEnable;}}3 使用方法private CustomViewPager homeViewPager null;homeViewPager (CustomViewPager) findViewById(R.id.view_pager_home);//中间涉及的其他步骤就不赘述了homeViewPager.setSlidingEnable(false); //禁止左右滑动这里需要注意的一个问题CustomViewPager是自定义的一个类我们定义布局文件xml时就要用这个CustomViewPager否则还用原来的androidx.viewpager.widget.ViewPager话在这里homeViewPager (CustomViewPager) findViewById(R.id.view_pager_home);会报错因为类型不匹配———————————————————————————————————本文为博主原创文章转载请注明出处若本文对您有帮助轻抬您发财的小手关注/评论/点赞/收藏就是对我最大的支持祝君升职加薪鹏程万里文章来源: blog.csdn.net作者Winter_world版权归原作者所有如需转载请联系作者。原文链接blog.csdn.net/w464960660/article/details/109387520