美文网首页Android知识Android开发经验谈Android
TabLayout+ViewPager取消滑动,留点击,消除滑动

TabLayout+ViewPager取消滑动,留点击,消除滑动

作者: 脑袋君 | 来源:发表于2016-08-13 01:08 被阅读7046次

    今天需求要求,实现一个tab,只能点击有不能够滑动viewpager,如需滑动,则是弹出删除LinearLayout布局,实现点击删除item。

    实现效果图:

    取消滑动事件的viewpager

    网上大部分都是自定义ViewPager,没错我们这里也需要自定义ViewPager,我先贴出所有代码:


    /**

    * Created by caishaohua on 2016/8/12 16:04

    * Email: icaishaohua@gmail.com

    */

    public class BanViewPager extends ViewPager {

    private boolean isCanScroll = true;

    public BanViewPager(Context context) {

          super(context);

    }

    public BanViewPager(Context context, AttributeSet attrs) {

            super(context, attrs);

    }

    public void setNoScroll(boolean noScroll) {

            this.isCanScroll = noScroll;

    }

    @Override

    public void scrollTo(int x, int y) {

          super.scrollTo(x, y);

    }

    @Override

    public boolean onTouchEvent(MotionEvent arg0) {

        if (isCanScroll){

                return false;

        }else{

               return super.onTouchEvent(arg0);

       }

    }

    @Override

    public boolean onInterceptTouchEvent(MotionEvent arg0) {

          if (isCanScroll){

                  return false;

          }else{

                return super.onInterceptTouchEvent(arg0);

          }

        }

    }

    自定义的ViewPager和其他网上的基本大同小异!起最后关键的东西要出现了,请看xml布局文件

    布局文件:

    <android.support.design.widget.TabLayout

            android:id="@+id/tablayout"

           android:layout_width="match_parent"

           android:layout_height="wrap_content"

           app:tabIndicatorColor="@color/indigo"

           app:tabTextColor="@color/time_item_gray"

           app:tabSelectedTextColor="@color/indigo">

    </android.support.design.widget.TabLayout>

    <com.hengsu.moran.profile.model.BanViewPager

           android:id="@+id/viewpage"

          android:layout_width="match_parent"

          android:layout_height="wrap_content"

           android:isScrollContainer="true">

    </com.hengsu.moran.profile.model.BanViewPager>

    一般的这样自定义就可以解决TabLayout下面的ViewPager的滑动,但是细心的同学,依然发现有滑动出现的左右移动bug!!!并没有全部固定ViewPager,看了xml布局文件,细心的同学会发现,我在自定义的Viewpager控件中加了

    android:isScrollContainer="true"

    表示可以滚动的,然后我们就可以解决滑块出现的滑动出现左右移动bug!

    相关文章

      网友评论

        本文标题:TabLayout+ViewPager取消滑动,留点击,消除滑动

        本文链接:https://www.haomeiwen.com/subject/usmesttx.html