为了账号安全,请及时绑定邮箱和手机立即绑定

老师,我将之前讲的高仿微信的课程与这节课,结果在一起后,使用抽屉一的效果,出现两个问题,麻烦帮忙解答下,谢谢~!
1、实现侧划菜单后,原微信方式的viewpage侧划功能与侧划菜单冲突,功能不可用

2、实现抽屉一效果后,侧划菜单覆盖了viewpage里面的fragment

请问如果解决这两个问题,麻烦老师了~~

正在回答

2 回答

你好,问题1:HorizontalScrollView默认会用水平的滑动手势进行拦截,如果你希望其内部的ViewPager可以自己处理,需要重写ViewPager在其onTouchEvent里面写上requestDisallowInterceptTouchEvent(true);当然这样ViewPager就会完全屏蔽到侧滑菜单的滑动;所以你还需要在onTouchEvent进行判断,如果当前是第一页,切用户从左向右滑动,设置requestDisallowInterceptTouchEvent(false);ViewPager中类似下面的伪代码:

@Override
public boolean onTouchEvent(MotionEvent arg0)
{
requestDisallowInterceptTouchEvent(true);

if (当前是第一页,用户是从左向右滑动)
requestDisallowInterceptTouchEvent(false);
return super.onTouchEvent(arg0);
}

关于问题2:检查下代码,如果没有问题,如果是菜单将内容遮住了,可以考虑调用bringToFront;

2 回复 有任何疑惑可以回复我~
#1

jinglion

老师我想问下,要怎么重写ViewPager,是要新建一个类继承viewpager吗?
2014-12-21 回复 有任何疑惑可以回复我~
#2

usbwnb9074

老师 问下~在自定义的ViewPager中怎么获得是否是第一页 以及用户是从左到右滑动?ViewPager有个getcurrentItem方法,但在自己的类里无法使用啊???求思路
2015-04-10 回复 有任何疑惑可以回复我~

main_viewpager.setOnTouchListener(new OnTouchListener() {

float xDown;

float yDown;

float xUp;

float yUp;

@Override

public boolean onTouch(View v, MotionEvent event) {

if(event.getAction() == MotionEvent.ACTION_DOWN){

xDown = event.getX();

yDown = event.getY();

}else if(event.getAction() == MotionEvent.ACTION_UP){

xUp = event.getX();

yUp = event.getY();

}

v.getParent().requestDisallowInterceptTouchEvent(true);

 

if (main_viewpager.getCurrentItem()==0 && xUp - xDown > 20){

main_viewpager.requestDisallowInterceptTouchEvent(false);

return false;

}

return true;

}

});


0 回复 有任何疑惑可以回复我~
#1

疆南星耀

我是在继承FragmentActivity的Activity里声明的ViewPager,可以使用你这个吗
2016-12-24 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
QQ5.0侧滑菜单
  • 参与学习       62531    人
  • 解答问题       295    个

本教程将带领大家通过自定义控件实现QQ5.0侧滑菜单

进入课程
意见反馈 帮助中心 APP下载
官方微信