老師,我將之前講的高仿微信的課程與這節(jié)課,結(jié)果在一起后,使用抽屜一的效果,出現(xiàn)兩個(gè)問(wèn)題,麻煩幫忙解答下,謝謝~!
1、實(shí)現(xiàn)側(cè)劃菜單后,原微信方式的viewpage側(cè)劃功能與側(cè)劃菜單沖突,功能不可用
2、實(shí)現(xiàn)抽屜一效果后,側(cè)劃菜單覆蓋了viewpage里面的fragment
請(qǐng)問(wèn)如果解決這兩個(gè)問(wèn)題,麻煩老師了~~
老師,我將之前講的高仿微信的課程與這節(jié)課,結(jié)果在一起后,使用抽屜一的效果,出現(xiàn)兩個(gè)問(wèn)題,麻煩幫忙解答下,謝謝~!
1、實(shí)現(xiàn)側(cè)劃菜單后,原微信方式的viewpage側(cè)劃功能與側(cè)劃菜單沖突,功能不可用
2、實(shí)現(xiàn)抽屜一效果后,側(cè)劃菜單覆蓋了viewpage里面的fragment
請(qǐng)問(wèn)如果解決這兩個(gè)問(wèn)題,麻煩老師了~~
2014-10-30
舉報(bào)
2014-10-30
你好,問(wèn)題1:HorizontalScrollView默認(rèn)會(huì)用水平的滑動(dòng)手勢(shì)進(jìn)行攔截,如果你希望其內(nèi)部的ViewPager可以自己處理,需要重寫(xiě)ViewPager在其onTouchEvent里面寫(xiě)上requestDisallowInterceptTouchEvent(true);當(dāng)然這樣ViewPager就會(huì)完全屏蔽到側(cè)滑菜單的滑動(dòng);所以你還需要在onTouchEvent進(jìn)行判斷,如果當(dāng)前是第一頁(yè),切用戶從左向右滑動(dòng),設(shè)置requestDisallowInterceptTouchEvent(false);ViewPager中類(lèi)似下面的偽代碼:
關(guān)于問(wèn)題2:檢查下代碼,如果沒(méi)有問(wèn)題,如果是菜單將內(nèi)容遮住了,可以考慮調(diào)用bringToFront;
2015-01-19
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;
}
});