Android中监听逻辑的demo

本文介绍如何通过重写onTouchEvent方法来禁用ViewPager的滑动功能,并提供了一个示例代码。此外,还讲解了如何在包含SlidingMenu的布局中设置侧边栏的滑动功能,确保在使用ViewPager时各页面侧边栏开关能够正常工作。

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

Demo1:
ViewPager 禁用滑动:
重新定义一个View继承ViewPager重写onTouchEvent的事件:

public boolean onTouchEvent(MotionEvent arg0) {
        // TODO Auto-generated method stub
        return false;  //这个就能禁止ViewPager本身的滑动。
    } 

Demo2:
SlidingMenu侧边栏的滑动, 在每个子pager中,实现该方法。 ViewPager加载多页面的机制,PagerAdpater加载数据时会使侧边栏开关失效。

public void setSlidingMenuEnable(boolean enable) {

        MainActivity mainUi = (MainActivity) mActivity; // 这里的Activity就是MainActivity;

        SlidingMenu slidingMenu = mainUi.getSlidingMenu(); // 得到SldingMenu对象。
                                                            // 以用来控制是否能左划。
        if (enable) {
            // 表示SlidingMenu能滑动。
            slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); // 表示能滑动。

        } else {

            slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_NONE); // 表示不能滑动。
        }

解决:
监听ViewPager页面改变,当选中那个页面就加载哪个页面。 在PagerAdpater中就不要再加载数据了。

    mViewPager.setOnPageChangeListener(new OnPageChangeListener() {

            @Override  //页面选中  arg0就是被选中的页面。
            public void onPageSelected(int arg0) {

                mPagerList.get(arg0).initData();  //当选中那个页面时加载那个页面的数据。这样各自的打开侧边栏的开关都能正常工作。
            }

            @Override  //页面滑动。
            public void onPageScrolled(int arg0, float arg1, int arg2) {
                // TODO Auto-generated method stub

            }

            @Override  //滑动状态改变时,
            public void onPageScrollStateChanged(int arg0) {
                // TODO Auto-generated method stub

            }
        });            //这个是页面改变时的监听。默认刚开始没有需手动加载

mPagerList.get(0).initData();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值