日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Android Activity向右滑動返回

瀏覽:46日期:2022-09-23 14:42:24

向右滑動返回,對于屏幕過大的手機來說,在單手操作時,是一個不錯的用戶體驗,用戶不必再費力的或者用另一個手去點擊屏幕左上角的返回按鈕或者,手機右下角的返回按鈕,輕輕向右滑動屏幕即可返回上一頁,這個功能如今大部分APP都已經支持啦,你的APP支持了嗎?

自己在網上百度了一些滑動返回的方法,有的是用的第三方控件如swipebackLayout但弊端過大如與自己自定義的一些控件沖突等,有的是通過判斷手勢監聽但步驟相當繁瑣,總之沒有盡如人意的,本篇所講的實現方法其實也是通過監聽事件分發來實現的,但是步驟非常簡單,且效果經本人不斷測試也相當不錯,接下來本人講解下實現過程:

實現該功能需同時滿足幾個條件,并要考慮用戶的操作意圖,既要保證足夠的靈敏度,不要出現向右滑動好多次還沒返回上一頁的情況,也不要出現本來是想上下滑動(斜著上下滑動)而非向右滑動返回,也被判斷為向右滑動返回而結束了當前界面,那么我們需要滿足:

1.用戶需向右滑動一段距離,且X軸距離>某一設定的值;

2.因為向右滑動時,不可能時嚴格的水平方向而不向Y軸偏移,所以向Y軸的偏移量不能超過某一設定的值,否則認為用戶意圖不是滑動返回而是上下滑動;

Android Activity向右滑動返回

3.在測試過程中,如果用戶意圖是上下滑動時,那么手指在y軸移動速度(我們按每秒移動的像素值,可通過VelocityTracker類計算)非常大,通常在幾千到過萬,而在正常的水平滑動時,y軸的移動速度通常只有100左右,因此,我們需要判斷的是,如果y軸上手指滑動速度超過某一設定值(本人將該值設置為了1000),則認為用戶意圖是上下滑動而非向右滑動返回;

好了,接下來我們便可自定義一個BaseActivity繼承Activity,并在BaseActivity中重寫事件分發dispatchTouchEvent,并記錄手指按下,移動的距離及手指滑動速度,從而判斷用戶的意圖,完整代碼:

package com.kincai.store.ui; import com.kincai.store.utils.LogTest; import android.app.Activity;import android.os.Bundle;import android.view.MotionEvent;import android.view.VelocityTracker; /** * * @company KCS互聯網有限公司 * * @author kincai * * @description baseActivity * * @project Kincai_Store * * @package com.kincai.store.ui * * @time 2015-7-13 上午10:18:29 * */public class BaseActivity extends Activity { // 手指上下滑動時的最小速度 private static final int YSPEED_MIN = 1000; // 手指向右滑動時的最小距離 private static final int XDISTANCE_MIN = 50; // 手指向上滑或下滑時的最小距離 private static final int YDISTANCE_MIN = 66; private static final String TAG = 'BaseActivity'; // 記錄手指按下時的橫坐標。 private float xDown; // 記錄手指按下時的縱坐標。 private float yDown; // 記錄手指移動時的橫坐標。 private float xMove; // 記錄手指移動時的縱坐標。 private float yMove; // 用于計算手指滑動的速度。 private VelocityTracker mVelocityTracker; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); LogTest.LogMsg(TAG, 'BaseActivity-onCreate'); } @Override public boolean dispatchTouchEvent(MotionEvent event) { createVelocityTracker(event); switch (event.getAction()) { case MotionEvent.ACTION_DOWN: xDown = event.getRawX(); yDown = event.getRawY(); break; case MotionEvent.ACTION_MOVE: xMove = event.getRawX(); yMove = event.getRawY(); // 滑動的距離 int distanceX = (int) (xMove - xDown); int distanceY = (int) (yMove - yDown); // 獲取順時速度 int ySpeed = getScrollVelocity(); // 關閉Activity需滿足以下條件: // 1.x軸滑動的距離>XDISTANCE_MIN // 2.y軸滑動的距離在YDISTANCE_MIN范圍內 // 3.y軸上(即上下滑動的速度)<XSPEED_MIN,如果大于,則認為用戶意圖是在上下滑動而非左滑結束Activity if (distanceX > XDISTANCE_MIN && (distanceY < YDISTANCE_MIN && distanceY > -YDISTANCE_MIN) && ySpeed < YSPEED_MIN) { finish(); } break; case MotionEvent.ACTION_UP: recycleVelocityTracker(); break; default: break; } return super.dispatchTouchEvent(event); } /** * 創建VelocityTracker對象,并將觸摸界面的滑動事件加入到VelocityTracker當中。 * * @param event * */ private void createVelocityTracker(MotionEvent event) { if (mVelocityTracker == null) { mVelocityTracker = VelocityTracker.obtain(); } mVelocityTracker.addMovement(event); } /** * 回收VelocityTracker對象。 */ private void recycleVelocityTracker() { mVelocityTracker.recycle(); mVelocityTracker = null; } /** * * @return 滑動速度,以每秒鐘移動了多少像素值為單位。 */ private int getScrollVelocity() { //1000速度 mVelocityTracker.computeCurrentVelocity(1000); int velocity = (int) mVelocityTracker.getYVelocity(); return Math.abs(velocity); } @Override protected void onStart() { // TODO Auto-generated method stub super.onStart(); LogTest.LogMsg(TAG, 'BaseActivity-onStart'); } @Override protected void onResume() { // TODO Auto-generated method stub super.onResume(); LogTest.LogMsg(TAG, 'BaseActivity-onResume'); } @Override protected void onPause() { // TODO Auto-generated method stub super.onPause(); LogTest.LogMsg(TAG, 'BaseActivity-onPause'); } @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); LogTest.LogMsg(TAG, 'BaseActivity-onDestroy'); } }

程序activity想實現滑動返回功能的話 直接繼承BaseActivity即可

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Android
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
99久久久久| 中文字幕av一区二区三区人| 嫩呦国产一区二区三区av| 美腿丝袜亚洲一区| 久久伦理在线| 日韩中文字幕不卡| 日韩精选在线| 久久久精品国产**网站| 久久国产直播| 中文字幕日本一区| 精品一区二区三区在线观看视频| 亚洲成av在线| 亚洲另类av| 国产成人精品一区二区三区在线| 午夜久久福利| 欧美a一区二区| 尤物在线精品| 久久99视频| 妖精视频成人观看www| 国产精品久久久亚洲一区| 亚洲一级影院| 色综合视频一区二区三区日韩| 国产中文字幕一区二区三区| 亚洲午夜精品久久久久久app| 久久国内精品| 美女网站一区| 国产精品香蕉| 红桃视频国产精品| 麻豆精品国产91久久久久久| 日韩午夜高潮| 成人台湾亚洲精品一区二区| 午夜一级久久| 精品一区二区男人吃奶| 黄色日韩在线| 精品国产aⅴ| 亚洲人成亚洲精品| 夜鲁夜鲁夜鲁视频在线播放| 日韩精品三级| 美女少妇全过程你懂的久久| 欧美黄页在线免费观看| 亚洲欧美日韩综合国产aⅴ| 日韩av免费大片| 97久久中文字幕| 亚洲激情不卡| 国产精品久久久久久久久妇女| 蜜桃视频一区二区三区在线观看| 成人国产精品一区二区免费麻豆| 亚洲精品乱码久久久久久蜜桃麻豆| 日韩精品不卡一区二区| 97精品久久| 亚洲精品网址| 9999国产精品| 国产情侣久久| 免费观看久久久4p| 欧美日韩水蜜桃| 久久一区视频| 青青草91视频| 蜜臀av一区二区三区| 影视先锋久久| 黄色欧美在线| 国产精品一区二区av交换| 中文一区一区三区免费在线观| 香蕉久久精品| 欧美香蕉视频| 国产精品天天看天天狠| 亚洲最新av| 婷婷成人在线| 91亚洲国产| 久久婷婷国产| 国产精品丝袜在线播放| 亚洲精品免费观看| 丝袜诱惑制服诱惑色一区在线观看 | 日韩欧美在线中字| 国产精品nxnn| 亚洲精品黄色| 亚洲欧美日韩综合国产aⅴ| 国产精品99免费看| 日韩精品网站| 日韩免费视频| 中文在线а√天堂| 国产精品.xx视频.xxtv| 日本在线不卡视频一二三区| 丝袜诱惑制服诱惑色一区在线观看 | 欧美在线亚洲| 免费视频国产一区| 成人羞羞视频播放网站| 91青青国产在线观看精品| 国产激情欧美| 国产精品中文字幕制服诱惑| 奇米777国产一区国产二区| 日韩精品免费视频一区二区三区| 免费不卡在线观看| 蜜桃久久精品一区二区| 免费观看日韩电影| 视频一区日韩| 青草国产精品| 欧美国产精品| 国产精品毛片久久| 日韩中文在线电影| 99久精品视频在线观看视频| 日本韩国欧美超级黄在线观看| 久久激情网站| 五月天综合网站| 国产精品88久久久久久| 国模 一区 二区 三区| 午夜欧美精品| 亚洲视频二区| 亚洲网址在线观看| 日韩精品视频网| 国产精品xxx| 精品国产美女a久久9999| 国产成人精品999在线观看| 夜夜精品视频| 亚洲日本三级| 国产日韩欧美一区在线| 久久99久久久精品欧美| 久久久久久网| 欧美高清不卡| 日韩中文欧美在线| 日本精品一区二区三区在线观看视频 | 亚洲视频国产精品| 国产精品一线| 日韩av福利| 伊人久久婷婷| 人人精品久久| 风间由美中文字幕在线看视频国产欧美| 超碰成人av| 亚洲免费影院| 欧美日韩亚洲一区| 国产精品成久久久久| 日韩在线二区| 国产农村妇女精品一二区| 日韩av一区二区三区| 福利在线一区| 亚洲欧美日本日韩| 国产精品欧美在线观看| 精品捆绑调教一区二区三区 | 蜜臀精品久久久久久蜜臀| 精品一区二区三区在线观看视频 | 国产偷自视频区视频一区二区| 日本精品另类| 国产suv精品一区二区四区视频| 久久精品青草| 综合国产视频| 精品国产黄a∨片高清在线| 国户精品久久久久久久久久久不卡 | 成人精品国产亚洲| 羞羞答答国产精品www一本| 国产精品久久久久久久久免费高清 | 日韩综合小视频| 国产精品不卡| 美女精品在线| 久久精品国产精品亚洲毛片| 91久久国产| 日本成人一区二区| 中文字幕系列一区| 亚洲精品护士| 裤袜国产欧美精品一区| 免费看的黄色欧美网站| 欧美a在线观看| 久久亚洲色图| 久久久久久自在自线| 亚洲精品大全| 视频二区不卡| 欧美在线首页| 一区视频在线| 欧美国产极品| 巨乳诱惑日韩免费av| 国内精品美女在线观看| 美女精品一区| 老牛影视精品| 欧美日韩99| 亚洲欧美日韩国产| 成人午夜毛片| 婷婷成人av| 亚洲网站视频| 美女性感视频久久| 日本大胆欧美人术艺术动态| 97精品国产| 日本午夜精品一区二区三区电影| 美女网站一区| 成人高清一区| 国产精品自拍区| 最新亚洲国产| 欧美日韩国产一区二区三区不卡| 国产精品一线| 亚洲有吗中文字幕| 波多野结衣一区| 欧美男人天堂| 国产探花一区| 蜜臀av性久久久久蜜臀aⅴ流畅 | 精品三级av| 日本久久二区| 每日更新成人在线视频| 欧美日韩视频免费观看| 欧美日韩一区二区三区不卡视频 | 久久亚洲精品伦理| 91精品精品| 99视频一区| 九九在线精品|