Android中监听逻辑的demo

来源:互联网 发布:holy potatoes人物数据 编辑:程序博客网 时间:2024/06/05 01:57

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();
0 0