老师,我将之前讲的高仿微信的课程与这节课,结果在一起后,使用抽屉一的效果,出现两个问题,麻烦帮忙解答下,谢谢~!
1、实现侧划菜单后,原微信方式的viewpage侧划功能与侧划菜单冲突,功能不可用
2、实现抽屉一效果后,侧划菜单覆盖了viewpage里面的fragment
请问如果解决这两个问题,麻烦老师了~~
老师,我将之前讲的高仿微信的课程与这节课,结果在一起后,使用抽屉一的效果,出现两个问题,麻烦帮忙解答下,谢谢~!
1、实现侧划菜单后,原微信方式的viewpage侧划功能与侧划菜单冲突,功能不可用
2、实现抽屉一效果后,侧划菜单覆盖了viewpage里面的fragment
请问如果解决这两个问题,麻烦老师了~~
2014-10-30
你好,问题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;
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;
}
});
举报