1. 程式人生 > >android Activity右滑返回,退出當前activity

android Activity右滑返回,退出當前activity

發現目前很多app應用,都具有左滑返回的功能,而且感覺體驗很是愉快,尤其酷狗音樂左滑返回的實現,更是炫酷。今天就學習一下具體實現。

先看一下效果圖吧:
這裡寫圖片描述
開發前準備,有兩種方案:
1:新增庫檔案,點選下載(推薦用這種)
2:新增依賴 compile ‘me.imid.swipebacklayout.lib:library:1.0.0’
至於為什麼是新增庫檔案呢?後面在做解釋。當然第二種方案也不是不可以的。

先寫一個 BaseActivity 繼承 SwipeBackActivity:


public class BaseActivity extends SwipeBackActivity
{
private SwipeBackLayout mSwipeBackLayout; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mSwipeBackLayout = getSwipeBackLayout(); //設定滑動方向,可設定EDGE_LEFT, EDGE_RIGHT, EDGE_ALL, EDGE_BOTTOM mSwipeBackLayout.setEdgeTrackingEnabled(SwipeBackLayout.EDGE_LEFT); //mSwipeBackLayout.setEdgeSize(200);//滑動刪除的效果只能從邊界滑動才有效果,如果要擴大touch的範圍,可以呼叫這個方法
} }

然後,下面依次是:MainActivity ,SecondActivity ,ThreeActivity 分別繼承自 BaseActivity 。
方法的呼叫都添加了註釋,就不在多說啦。

public class MainActivity extends BaseActivity {


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        setSwipeBackEnable(false
); //主 activity 可以呼叫該方法,禁止滑動刪除 findViewById(R.id.button).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { startActivity(new Intent(MainActivity.this, SecondActivity.class)); } }); } }
public class SecondActivity extends BaseActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);

        findViewById(R.id.button2).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(SecondActivity.this, ThreeActivity.class));
            }
        });
    }


    @Override
    public void onBackPressed() {
        scrollToFinishActivity();//左滑退出activity
    }
}
public class ThreeActivity extends BaseActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_three);


    }

    /**
     * 當按下返回鍵時
     */
    @Override
    public void onBackPressed() {
        scrollToFinishActivity();//左滑退出activity
    }

}

最後你還需要在清單檔案中,AppTheme 主題上,加上這個屬性,要不然activity的背景應該是黑色的,很難看:

 <item name="android:windowIsTranslucent">true</item>

到此,SwipeBackLayout基本用法就介紹完了。

下面就解釋一下,為什麼專案依賴庫,而不是直接新增依賴。
看一下,新增依賴後 SwipeBackActivity繼承的是 FragmentActivity。
這裡寫圖片描述

而我發現,依賴庫的話,是這樣的:
這裡寫圖片描述

至於 繼承 AppCompatActivity 和 繼承 FramgmentActivity 有什麼區別,我就不在多說啦。
總結:希望開源這個框架的大神,早日把 繼承FramgmentActivity改成AppCompatActivity吧。當然繼承FramgmentActivity也是可以的,不過後者更好一些,相容性也更好。

當然如果你不想用別人的開源框架,自己寫一個,來實現 activity 的滑動返回的效果,也是可以的。

參考部落格地址:

相關推薦

android Activity返回退出當前activity

發現目前很多app應用,都具有左滑返回的功能,而且感覺體驗很是愉快,尤其酷狗音樂左滑返回的實現,更是炫酷。今天就學習一下具體實現。 先看一下效果圖吧: 開發前準備,有兩種方案: 1:新增庫檔案,點選下載(推薦用這種) 2:新增依賴 compile ‘

android Activity返回退出當前activity

發現目前很多app應用,都具有左滑返回的功能,而且感覺體驗很是愉快,尤其酷狗音樂左滑返回的實現,更是炫酷。今天就學習一下具體實現。 先看一下效果圖吧:   開發前準備,有兩種方案:  1:新增庫檔案,點選下載(推薦用這種)  2:新增依賴 compile ‘me.imi

android webview 返回與GestureDetector 手勢衝突解決

最近在搞一個資訊新聞右滑返回退出當前頁面,最開始用的是實現SwipeBackActivityBase這個介面,設定 getSwipeBackLayout().setEdgeSize(metrics.widthPixels / 3);//經驗證設定一半等於沒設定,只有部分割槽域滑動有滑動返回效

android 仿ios退出當前activity

1.概述      iPhone的使用者在使用APP的時候,開啟很多頁面想關閉的時候只需要在螢幕的左側向右滑動即可退出當前頁面,這是iPhone沒有返回鍵的原因。但是這個效果很炫酷呀,能應用在Andr

Android應用退出當前activity

注意,MainActivity不用繼承baseActivity。Activity可以是FragmentActivity或者AppCompatActivity整工程程式碼下載https://pan.baidu.com/s/1ebop8D193eg36m8r3JNVhg工具類、1

一行程式碼實現Android返回功能

一行程式碼實現Android右滑返回功能 一、使用方式 二、設計思路 三、方案過濾 四、實現過程 1、實現NavigationLayout 2、新增NavigationLayou

銷燬全部的Activity退出當前應用

我用的是廣播方式,缺點是退出的是全部的activity,不能銷燬指定的activity(但是好像用的不多)。此外,我在A介面設定了啟動模式為singleTask,當有人登陸賬號時就會從你設定的賬號異常登陸的操作介面A 跳到 登陸頁面。 裡邊第三種的方法我試了總是崩潰,不知道為什麼。 Andr

【IOS】放棄返回標題欄上出現了3個藍點

Q: 當你自定義了leftBarButtonItem或titleView時,並enable了右滑返回功能,此時,如果進行右滑假返回操作(即右滑後不鬆開手左滑回去)時,在UINavgationBar的leftBarButtonItem或titleView上出現了三個藍色的點

ios7自定義返回按鈕後返回功能失效解決方法

http://blog.sina.com.cn/s/blog_9592635a0101fuk9.html -(void)viewWillAppear:(BOOL)animated{   [super viewWillAppear:animated];   //開啟i

Android按back鍵不退出當前Activity

一般預設情況下,我們按back鍵的時候,會執行Activity的onDestroy方法,銷燬當前例項。 有些情況下,不想銷燬,只是想切換到後臺,即回到桌面程式。那麼有兩種方法可以設定,重寫Activity的onBackPressed()方法,或是重寫onKeyDown方法

android程式退出當前activity的方法

Android程式有很多Activity,比如說主視窗A,呼叫了子視窗B,如果在B中直接finish(), 接下里顯示的是A。在B中如何關閉整個Android應用程式呢?本人總結了幾種比較簡單的實現方法。   1. Dalvik VM的本地方法  android.os.Pro

android 完全退出app退出所有activity

/** * 所有activity的基類 * **/ public abstract class BaseActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanc

iOS 自定義導航欄pop返回手勢全屏返回

- (void)viewDidLoad {     [superviewDidLoad]; //重新給interactivePopGestureRecognizer.delegate掛代理

顯示從隱藏向左出效果

all form ted div highlight css mov active 1.8 顯示從右滑進,隱藏向左滑出效果 .move-enter-active, .move-leave-active { transition:all 0.2s

iOS 開發 返回上一級控制器

nvi add str class change bool poi exc iges #import <objc/runtime.h> @interface UINavigationController (Transition)<UIGestureReco

Android總結 - Activity任務和返回棧、儲存Activity的狀態

任務和返回棧   一個應用程式當中通常都會包含很多個Activity,每個Activity都應該設計成為一個具有特定的功能,並且可以讓使用者進行操作的元件。另外,Activity之間還應該是可以相互啟動的。比如,一個郵件應用中可能會包含一個用於展示郵件列表的Activity,而當用戶點選了其中某

Android 應用在後臺時跳轉 Activity 會自動切換應用至前臺

本部落格 demo 見:demo。 平常用手機的時候經常碰到這種情況,用首屏廣告舉個栗子~很多應用都會有首屏廣告 activity A,假設此應用是 app C,如果此時要使用別的應用,就會使得 app C 在後臺執行。可是當 

Android WebView注入js檔案判斷當前HTML有沒有某個js然後再注入

Android WebView注入js檔案,判斷當前HTML有沒有某個js然後再注入 1.注入js程式碼 判斷當前有沒有jQuery檔案引入,然後再進行注入。 判斷依據其實很簡單,獲取script 的dom物件 判斷src的值 進行遍歷就行了。 (function () {

實現Activity返回效果

先看一張效果圖 通過ViewDragHelper來檢測到螢幕側滑,然後通過內建介面傳遞給Acitivity觸發了側滑事件,通知其關閉。 1、實現側滑刪除,這裡的方法是先要建立一個監聽側滑的自定義佈局. public class SwipeBackLayout exten

Android開發點選返回退出(出現dialog)

重寫activity的如下方法,使其在點選返回按鈕使彈出是否退出: (注:此方法只針對於只有一個activity的APP,如果存在多個activity可以使用startactivityforresult的處理事件進行,每開啟一個activity均使用startactivi