android Viewpager禁用/开启滑动切换功能

本文介绍了一种自定义Android ViewPager组件的方法,通过继承ViewPager并重写onTouchEvent方法来实现滑动及禁止滑动的功能。只需简单调用setScrollble方法即可在运行时切换ViewPager的滑动状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

要实现viewpager的滑动以及禁止滑动切换功能只需要继承viewpager,在onTouchEvent进行逻辑判断即可(网上搜到的,确实可行,原创地址不明),下面自己实现一个

import android.content.Context;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.view.MotionEvent;

public class MyViewPager extends ViewPager {

    private boolean scrollble = true;

    public MyViewPager(Context context) {
        super(context);
    }

    public MyViewPager(Context context, AttributeSet attrs) {
        super(context, attrs);
    }


    @Override
    public boolean onTouchEvent(MotionEvent ev) {
        if (!scrollble) {
            return true;
        }
        return super.onTouchEvent(ev);
    }


    public boolean isScrollble() {
        return scrollble;
    }

    public void setScrollble(boolean scrollble) {
        this.scrollble = scrollble;
    }
}




使用时只需要根据需要调用setScrollble(true/false)即可进行切换!!!

Android ViewPager 是一个用于创建平滑视图切换的组件,通常用于展示一系列相关的部分内容,如轮播图或屏幕分页。如果你想要禁用ViewPager滑动手势或滚动功能,你可以通过设置其属性或监听器来实现: 1. **设置Adapter**: 如果你不想让用户交互,可以在适配器(PagerAdapter或FragmentStatePagerAdapter)中处理,例如返回一个不可见的项或者空视图。 ```java @Override public Object instantiateItem(ViewGroup container, int position) { if (position == DISABLED_SLIDE_POSITION) { return new View(container.getContext()); // 创建并添加一个不可见的View } // 正常创建并添加item... } ``` 2. **启用或禁用GestureDetector**: 可以在ViewPager的OnTouchListener上直接控制滑动操作。如果不需要滑动,你可以传递null给setOnTouchListener方法。 ```java viewPager.setOnTouchListener((v, event) -> { if (event.getAction() != MotionEvent.ACTION_DOWN) { // 只有按下事件才处理 return false; } return super.onTouchEvent(event); }); ``` 3. **设置PagerTransformer**:你可以自定义一个 PagerTransformer 类,在 transformPage 方法里判断当前页面是否应该可见,然后决定是否执行动画。 ```java pager.setPageTransformer(true, new Transformer() { @Override public void transformPage(View page, float position) { if (position == DISABLED_SLIDE_VALUE) { page.setAlpha(0f); // 设置透明度为0,模拟隐藏效果 } else { // 正常的transform操作 } } }); ```
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值