Android右滑關閉Activity介面功能-自定義控制元件實現
引言
Android右滑關閉Activity介面功能,網上已經有好多優秀的開原始碼和專案,不過大部分都是結合ViewDragHelper來實現的,這裡要討論的是通過結合ValueAnimator來實現,目前我的控制元件只實現了從左往右(上往下)滑關閉介面。
需求
- 在介面上從左往右滑,View位置根據手勢移動。
- 只攔截左右滑動,上下方向的滑動無影響。
- 子View的左右滑動事件無影響。
預覽圖
實現思路
- SwipeBackLayout:左右滑動View
- onInterceptTouchEvent:該方法只要做左右移動攔截,上下移動不攔截。
- ValueAnimator:該動畫只要改變SwipeBackLayout View的位置,在ACTION_UP和介面開啟時呼叫。
- ACTION_MOVE時,根據移動的X位移,修改SwipeBackLayout View的位置。
主要程式碼分析
onFinishInflate
該方法只要實現兩種方式,一種是通過佈局xml檔案來初始化SwipeBackLayout;另外一種是新new SwipeBackLayout。
onLayout
該方法只要是在初始化成功之後,修改SwipeBackLayout的位置。
onInterceptTouchEvent
該方法只要是攔截左右移動和判斷是否在左右不攔截的子View集合裡面。
onTouchEvent
該方法只要在使用者左右移動的時候,修改SwipeBackLayout的位置。
該方法只要是ACTION_UP的時候,需要判斷當前SwipeBackLayout的left位置,如果left位置小於螢幕的一半,則使用ValueAnimator動畫,讓SwipeBackLayout位置還原到正常位置。否則,關閉SwipeBackLayout。
dispatchDraw
該方法只要是在SwipeBackLayout移動的時候,繪畫陰影。
原始碼
具體的程式碼和呼叫Demo,可到原始碼地址處檢視:https://github.com/zhangliangming/SwipeBackLayout.git
最後
如果有問題,可到github上面留言。
相關文章
- Android自定義控制元件模仿iOS滑塊SwitchButtonAndroid控制元件iOS
- Android側滑(右滑、下拉)返回控制元件 - SwipeBackLayoutAndroid控制元件
- Android自定義控制元件之自定義ViewGroup實現標籤雲Android控制元件View
- 自定義ViewGroup,實現Android的側滑選單ViewAndroid
- Android實現Activity的滑動返回效果Android
- Qt實現自定義控制元件QT控制元件
- 自定義View:側滑選單實現View
- 自定義RecyclerView實現側滑刪除View
- android自定義開關控制元件-SlideSwitchAndroid控制元件IDE
- Android自定義控制元件——自定義屬性Android控制元件
- Android自定義控制元件之自定義組合控制元件Android控制元件
- 自定義DropDownList控制元件的實現控制元件
- Android 自定義實現switch開關按鈕Android
- 自定義View:側滑選單動畫實現View動畫
- [Android]關閉所有Activity,開啟某個ActivityAndroid
- Android自定義控制元件之自定義屬性Android控制元件
- Android自定義拍照實現Android
- Android 實現自定義圓環Android
- 自定義控制元件?試試300行程式碼實現QQ側滑選單控制元件行程
- 自定義控制元件(一) Activity的構成(PhoneWindow、DecorView)控制元件View
- 自定義TextBox控制元件的實現控制元件
- android利用RecyclerView+自定義View實現城市選擇介面AndroidView
- Android自定義滑動刻度尺Android
- Android 自定義View 滑動解鎖AndroidView
- android:建立自定義控制元件Android控制元件
- Activity側滑返回的實現原理
- Android Paint應用之自定義View實現進度條控制元件AndroidAIView控制元件
- Android自定義控制元件之實現一個球賽比分條Android控制元件
- Android開發自定義控制元件實現一個餅狀圖Android控制元件
- Android 自定義控制元件實現刮刮卡效果 真的就只是刮刮卡麼Android控制元件
- Android自定義日曆控制元件的實現過程詳解Android控制元件
- Android開發自定義控制元件實現一個折線圖Android控制元件
- 小程式搜尋自定義關鍵詞功能關閉意欲何為?
- 簡單介紹Android自定義View實現時鐘功能AndroidView
- Android 自定義 View 之 實現一個多功能的 IndicatorViewAndroidViewIndicator
- SAP Spartacus 自定義Popover指令,如何實現彈出對話方塊自動關閉功能
- (Android自定義控制元件)Android自定義狀態提示圖表Android控制元件
- Android--關閉某個指定activityAndroid