課程
/移動開發(fā)
/Android
/QQ5.0側滑菜單
為什么那個切換菜單的按鈕,只要點擊了其他地方,就要點兩下才有響應???
2016-01-13
源自:QQ5.0側滑菜單 1-6
正在回答
@Overridepublic boolean onTouchEvent(MotionEvent ev) { ? ?int action=ev.getAction(); ? ?switch (action){ ? ? ? ?case MotionEvent.ACTION_UP: ? ? ? ? ? ?int scrollx=getScrollX();//獲取滑動的寬度; ? ? ? ? ? ?if (scrollx>=mMenuWidth/2){ ? ? ? ? ? ? ? ?this.smoothScrollTo(mMenuWidth, 0); ? ? ? ? ? ? ? ?//有個過程this.scrollTo();是一瞬間完成;smoothScrollTo(0, 0); ? ? ? ? ? ? ? ?isOpen=false; ? ? ? ? ? ?}else { ? ? ? ? ? ? ? ?this.smoothScrollTo(0, 0); ? ? ? ? ? ? ? ?isOpen=true; ? ? ? ? ? ?} ? ? ? ? ? ?return true;//一定要返回true不然要調(diào)用super.onTouchEvent(ev) ? ?} ? ?return super.onTouchEvent(ev);}/** * 打開菜單 */public void openMenu(){ ? ?if (isOpen) ? ? ? ?return; ? ?this.smoothScrollTo(0, 0); ? ?isOpen = true;}public void closeMenu() { ? ?if (!isOpen) ? ? ? ?return; ? ?this.smoothScrollTo(mMenuWidth, 0); ? ?isOpen = false;}/** * 切換菜單 */public void toggle() { ? ?if (isOpen) { ? ? ? ?closeMenu(); ? ?} else { ? ? ? ?openMenu(); ? ?}}
舉報
本教程將帶領大家通過自定義控件實現(xiàn)QQ5.0側滑菜單
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學習伙伴
掃描二維碼關注慕課網(wǎng)微信公眾號
2016-03-07
@Override
public boolean onTouchEvent(MotionEvent ev) {
? ?int action=ev.getAction();
? ?switch (action){
? ? ? ?case MotionEvent.ACTION_UP:
? ? ? ? ? ?int scrollx=getScrollX();//獲取滑動的寬度;
? ? ? ? ? ?if (scrollx>=mMenuWidth/2){
? ? ? ? ? ? ? ?this.smoothScrollTo(mMenuWidth, 0);
? ? ? ? ? ? ? ?//有個過程this.scrollTo();是一瞬間完成;smoothScrollTo(0, 0);
? ? ? ? ? ? ? ?isOpen=false;
? ? ? ? ? ?}else {
? ? ? ? ? ? ? ?this.smoothScrollTo(0, 0);
? ? ? ? ? ? ? ?isOpen=true;
? ? ? ? ? ?}
? ? ? ? ? ?return true;//一定要返回true不然要調(diào)用super.onTouchEvent(ev)
? ?}
? ?return super.onTouchEvent(ev);
}
/**
* 打開菜單
*/
public void openMenu()
{
? ?if (isOpen)
? ? ? ?return;
? ?this.smoothScrollTo(0, 0);
? ?isOpen = true;
}
public void closeMenu() {
? ?if (!isOpen)
? ? ? ?return;
? ?this.smoothScrollTo(mMenuWidth, 0);
? ?isOpen = false;
}
/**
* 切換菜單
*/
public void toggle() {
? ?if (isOpen) {
? ? ? ?closeMenu();
? ?} else {
? ? ? ?openMenu();
? ?}
}