亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Android仿微信右滑返回功能的實例代碼

 更新時間:2017年09月29日 15:28:27   作者:T通天T  
這篇文章主要介紹了Android仿微信右滑返回功能的實例代碼,需要的朋友可以參考下

先上效果圖,如下:

先分析一下功能的主要技術(shù)點,右滑即手勢判斷,當(dāng)滑到一直距離時才執(zhí)行返回,并且手指按下的位置是在屏幕的最左邊(這個也是有一定范圍的),  這些可以實現(xiàn)onTouchEvent來實現(xiàn)。 接著就是返回時,有滑動效果,很顯然這個是Acitivty切換動畫實現(xiàn)的。好啦,分析完了就開干。下面上代碼:

@Override
 public boolean onTouchEvent(MotionEvent event) {
  switch (event.getAction()){
   case MotionEvent.ACTION_DOWN:
    x=event.getX();
    y=event.getY();
//    Log.e("ACTION_DOWN","x="+x);
    break;
   case MotionEvent.ACTION_MOVE:
    float mX = event.getX();
    float mY = event.getY();
    float dX = Math.abs(mX-x);
    float dY = Math.abs(mY-y);
    scollX = mX-x;
    if (isScroll && scollX>0){
     view.scrollTo(-(int) scollX,0);
    }
    break;
   case MotionEvent.ACTION_UP:
    if (isScroll && scollX>300){
     finish();
     overridePendingTransition(R.anim.bga_sbl_activity_backward_enter,R.anim.bga_sbl_activity_backward_exit);
    }else {
     isScroll = false;
     view.scrollTo(0,0);
    }
    break;
  }
  return false;
 }

這段代碼主要是實現(xiàn)了 手指在屏幕上滑動時,判斷方向是否是右滑,是的話就用scrollTo()來實現(xiàn)Activity的滑動,當(dāng)滑動超過300px時就執(zhí)行返回,并且加上切換動畫??吹竭@里細(xì)心的朋友應(yīng)該會發(fā)現(xiàn)scrollTo()方法滑動的只是內(nèi)容,并不是View的本身,那是怎么實現(xiàn)整個activity的滑動的呢?沒錯,如果只是上面這部分代碼,當(dāng)你滑動時,是看不懂上一個界面的內(nèi)容的,因為我們的View還在,這里說一下這個View是我獲取的activity的根布局。好啦,既然是這個View擋住了我們的的上一層布局,那么是不是只要讓它透明就可以了呢?答案是肯定的,我記得要讓根布局透明只需要改一下主題即可,如下:

<!-- 用于開啟滑動返回功能的 Activity -->
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowIsTranslucent">true</item>

只需要把上面兩行代碼添加到你的主題中即可。

感覺已經(jīng)大功告成了,其實不是的,前面我們說了,當(dāng)手指從屏幕的最左邊向右滑時,才實發(fā)滑動,這個就涉及到事件分發(fā)了。比如我們一個按鈕的寬占滿全屏,那當(dāng)我們手指在按鈕的最左側(cè)按下時,是執(zhí)行點擊事件還是執(zhí)行滑動呢?這個時候就需要用到dispatchTouchEvent來處理這個問題。下面看代碼:

@Override
 public boolean dispatchTouchEvent(MotionEvent ev) {
  if (ev.getAction()==MotionEvent.ACTION_DOWN){
   float x = ev.getX();
//   Log.e("dispatchTouchEvent","x="+x);
   if (x<=50&&isCanScroll){
    isScroll = true;
    return true;
   }
  }
  return super.dispatchTouchEvent(ev);
 }

上面的代碼是當(dāng)我們的手指在屏幕最左側(cè)按下時,如果小于50(這個數(shù)值可以根據(jù)需求自己設(shè)置),我們就認(rèn)為用戶需要右滑,于是,我們就消費掉,不往下一層傳遞。

當(dāng)沒有小于50時,正常執(zhí)行。

整個流程已經(jīng)講完了,是不是很簡單!這些代碼最好放到Activity基類中實現(xiàn)!這樣方便管理!

總結(jié)

以上所述是小編給大家介紹的Android仿微信右滑返回功能的實例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Flutter組件隱藏的多種方式總結(jié)

    Flutter組件隱藏的多種方式總結(jié)

    在 Flutter 開發(fā)中,我們經(jīng)常會遇到需要動態(tài)隱藏或顯示組件的需求,Flutter 提供了多種方式來實現(xiàn)這一功能,每種方式都有其獨特的適用場景,本文將深入探討這些方法的原理、用法以及優(yōu)缺點,幫助您選擇最適合的方案,需要的朋友可以參考下
    2024-10-10
  • Android TextWatcher內(nèi)容監(jiān)聽死循環(huán)案例詳解

    Android TextWatcher內(nèi)容監(jiān)聽死循環(huán)案例詳解

    這篇文章主要介紹了Android TextWatcher內(nèi)容監(jiān)聽死循環(huán)案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • Android AlertDialog自定義樣式實現(xiàn)代碼

    Android AlertDialog自定義樣式實現(xiàn)代碼

    這篇文章主要介紹了Android AlertDialog自定義樣式實現(xiàn)代碼的相關(guān)資料,這里提供了實例代碼,一個簡單示例,需要的朋友可以參考下
    2016-12-12
  • Android 內(nèi)核代碼 wake_up源碼解析

    Android 內(nèi)核代碼 wake_up源碼解析

    這篇文章主要為大家介紹了Android 內(nèi)核代碼 wake_up源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • Android入門之ProgressBar的使用教程

    Android入門之ProgressBar的使用教程

    Android里的ProgressBar默認(rèn)為一個不斷轉(zhuǎn)圈的圓,它也可以自定義。這篇文章主要通過示例和大家介紹下ProgressBar的使用,感興趣的可以了解一下
    2022-11-11
  • Activity取消界面切換的默認(rèn)動畫方法(推薦)

    Activity取消界面切換的默認(rèn)動畫方法(推薦)

    下面小編就為大家?guī)硪黄狝ctivity取消界面切換的默認(rèn)動畫方法(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • Android實現(xiàn)小米相機底部滑動指示器

    Android實現(xiàn)小米相機底部滑動指示器

    這篇文章主要為大家詳細(xì)介紹了Android實現(xiàn)小米相機底部滑動指示器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • Android中WebView與Js交互的實現(xiàn)方法

    Android中WebView與Js交互的實現(xiàn)方法

    本文給大家介紹android中webview與js交互的實現(xiàn)方法,本文介紹的非常詳細(xì),具有參考借鑒價值,感興趣的朋友一起學(xué)習(xí)
    2016-05-05
  • Android 給控件添加邊框陰影效果

    Android 給控件添加邊框陰影效果

    這篇文章主要介紹了Android 給控件添加邊框陰影效果,文中代碼部分top代表下邊的陰影高度,left代表右邊的陰影寬度。具體實例代碼大家參考下本文
    2017-11-11
  • 詳解Android——藍(lán)牙技術(shù) 帶你實現(xiàn)終端間數(shù)據(jù)傳輸

    詳解Android——藍(lán)牙技術(shù) 帶你實現(xiàn)終端間數(shù)據(jù)傳輸

    藍(lán)牙技術(shù)在智能硬件方面有很多用武之地,本篇文章主要介紹了Android——藍(lán)牙技術(shù),實現(xiàn)兩個終端間數(shù)據(jù)的傳輸,有興趣的朋友可以了解一下。
    2016-12-12

最新評論