github連接比較慢的小伙伴,可以去Coding下載: https://coding.net/u/sloop/p/AndroidSideMenu/git
2014-12-25
代碼搬運(yùn)工: 一個(gè)與hyman老師講的抽屜式側(cè)滑菜單類似效果的側(cè)滑菜單源代碼和jar包,與hyman老師講的菜單基本上可以互換,想要研究的小伙伴歡迎下載: https://github.com/dmitry-zaitsev/AndroidSideMenu.git
因?yàn)槲以谧鲆粋€(gè)應(yīng)用想要使用側(cè)滑菜單,做了一部分后發(fā)現(xiàn)了一些個(gè)人解決不了的bug,例如,在替換主界面的fragment時(shí)菜單自動(dòng)展開,以及菜單在隱藏狀態(tài)下依然可以獲取焦點(diǎn),響應(yīng)點(diǎn)擊事件等問題,鑒于本人能力有限,嘗試了各種方法都不能完美解決問題,無意間在網(wǎng)上找到了一個(gè)類似的菜單源碼,測(cè)試了一下,用著挺方便,喜歡的小伙伴可以研究一下。
因?yàn)槲以谧鲆粋€(gè)應(yīng)用想要使用側(cè)滑菜單,做了一部分后發(fā)現(xiàn)了一些個(gè)人解決不了的bug,例如,在替換主界面的fragment時(shí)菜單自動(dòng)展開,以及菜單在隱藏狀態(tài)下依然可以獲取焦點(diǎn),響應(yīng)點(diǎn)擊事件等問題,鑒于本人能力有限,嘗試了各種方法都不能完美解決問題,無意間在網(wǎng)上找到了一個(gè)類似的菜單源碼,測(cè)試了一下,用著挺方便,喜歡的小伙伴可以研究一下。
2014-12-25
發(fā)現(xiàn)一個(gè)問題,就是在上面的界面沒有設(shè)置可以獲得焦點(diǎn)的控件時(shí),焦點(diǎn)會(huì)被下面的菜單獲取,而且給菜單設(shè)置
mMenu.setClickable(false);
mMenu.setFocusable(false);
mMenu.setEnabled(false);
沒有任何效果,焦點(diǎn)依然會(huì)被下面的菜單獲取。。。不知道為什么
mMenu.setClickable(false);
mMenu.setFocusable(false);
mMenu.setEnabled(false);
沒有任何效果,焦點(diǎn)依然會(huì)被下面的菜單獲取。。。不知道為什么
2014-12-23
發(fā)現(xiàn)以后問題,就是在上面的界面沒有設(shè)置可以獲得焦點(diǎn)的控件時(shí),焦點(diǎn)會(huì)被下面的菜單獲取,而且給菜單設(shè)置
mMenu.setClickable(false);
mMenu.setFocusable(false);
mMenu.setEnabled(false);
沒有任何效果,焦點(diǎn)依然會(huì)被下面的菜單獲取。。。不知道為什么
mMenu.setClickable(false);
mMenu.setFocusable(false);
mMenu.setEnabled(false);
沒有任何效果,焦點(diǎn)依然會(huì)被下面的菜單獲取。。。不知道為什么
2014-12-23
講師回答 / hyman
你好,確認(rèn)下你的?xmlns:liyi="http://schemas.android.com/apk/res/com.liyi.myslidemenu" 的com.liyi.myslidemenu 和你AndroidManifest.xml的packageName一致嗎? 如果沒有問題,那就clean下試試。?
2014-12-20
已采納回答 / hyman
你好,這是我們課程中側(cè)滑菜單的效果呀~你希望換成mMenu顯示在上面的效果的話,在onScrollChanged中處理偏移。此外,但是這樣可能會(huì)發(fā)生內(nèi)容區(qū)域?qū)Σ藛蔚恼趽?,所以最外層的容器(代碼中的LinearLayout),對(duì)于子View(內(nèi)容和菜單)的繪制順序你需要進(jìn)行控制。重寫LinearLayout,在構(gòu)造方法設(shè)置setChildrenDrawingOrderEnabled(true);然后getChildDrawingOrder復(fù)寫一下繪制子View的順序,讓內(nèi)容先繪制,菜單后繪制。
2014-12-18
講師回答 / hyman
你好,這是我們課程中側(cè)滑菜單的效果呀~你希望換成mMenu顯示在上面的效果的話,在onScrollChanged中處理偏移。此外,但是這樣可能會(huì)發(fā)生內(nèi)容區(qū)域?qū)Σ藛蔚恼趽?,所以最外層的容器(代碼中的LinearLayout),對(duì)于子View(內(nèi)容和菜單)的繪制順序你需要進(jìn)行控制。重寫LinearLayout,在構(gòu)造方法設(shè)置setChildrenDrawingOrderEnabled(true);然后getChildDrawingOrder復(fù)寫一下繪制子View的順序,讓內(nèi)容先繪制,菜單后繪制。
2014-12-18
已采納回答 / hyman
你好,使用VelocityTracker,在DOWN和MOVE時(shí)使用addMovement(MotionEvent)記錄,在UP時(shí),使用computeCurrentVelocity(int)來初始化速率單位后,獲取getXVelocity()?或getXVelocity()獲得橫向和豎向的速率與你設(shè)定的閾值進(jìn)行比較,達(dá)到則展開或者關(guān)閉菜單。此外,我記得某個(gè)同學(xué)自己添加了,你翻翻看提問區(qū)。
2014-12-18