十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
QQ側(cè)滑菜單的Android實(shí)現(xiàn)代碼,供大家參考,具體內(nèi)容如下
實(shí)現(xiàn)邏輯
1.先寫出菜單頁面和主頁面的布局
2.創(chuàng)建一個(gè)類,繼承RelativeLayout,實(shí)現(xiàn)里面的onLayout
3.在主布局文件中添加子空間
4.在onLayout里面獲取子控件的寬和高,并對子控件的位置進(jìn)行繪制
5.給子布局設(shè)置滑動(dòng)事件,分別在手指落下\移動(dòng)\抬起的時(shí)候,獲取手指的位置
6.在手指移動(dòng)的過程中,對菜單頁面的移動(dòng)距離進(jìn)行限制,防止菜單頁面跑出指定的頁面
7.在手指抬起的時(shí)候,判定一下手指移動(dòng)的距離,如果移動(dòng)的距離大于菜單頁面寬度的一半,那就讓菜單彈出,否則就讓菜單回到默認(rèn)的位置
8.針對菜單的彈出和收起,實(shí)現(xiàn)了一個(gè)漸變的過程,防止手指抬起的時(shí)候,菜單頁面會(huì)突然間到達(dá)指定的位置,這個(gè)功能的實(shí)現(xiàn)需要借助computeScroll方法
9.滑動(dòng)沖突的處理,分別求出手指移動(dòng)時(shí),X和Y方向的偏移量,如果x方向的大于Y方向的,那就判定滑動(dòng)事件是彈出和收起菜單,否則就判定為菜單頁面的內(nèi)部滑動(dòng)
代碼文件
布局文件
菜單布局文件
<?xml version="1.0" encoding="utf-8"?>