android 仿ios右滑退出當前activity

來源:互聯網
上載者:User

1.概述

     iPhone的使用者在使用APP的時候,開啟很多頁面想關閉的時候只需要在螢幕的左側向右滑動即可退出當前頁面,這是iPhone沒有返回鍵的原因。但是這個效果很炫酷呀,能應用在Android上不是更好嗎,今天就來講一個這個功能的實現,不深究代碼,只講使用。

先上效果圖吧:



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的範圍,可以調用這個方法    }}
 
 

通過setEdgeTrackingEnabled方法設定從什麼方向滑動退出

通過setEdgeSize方法設定滑動退出的邊界範圍

然後,下面依次是: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.btn_startSecondActivity).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.btn_startThirdActivity).setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                startActivity(new Intent(SecondActivity.this, ThirdActivity.class));            }        });    }    /**     * 當按下返回鍵時     */    @Override    public void onBackPressed() {        scrollToFinishActivity();//左滑退出activity    }}

public class ThirdActivity extends BaseActivity {    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_third);    }    /**     * 當按下返回鍵時     */    @Override    public void onBackPressed() {        scrollToFinishActivity();//左滑退出activity    }}

最最重要的來了,最重要的是把需要側滑退出的activity在資訊清單檔裡設定theme為透明樣式,要不側滑的時候底部是黑色,特別的難看。

<style name="NoTitleTranslucentTheme" parent="AppTheme">        <item name="android:windowNoTitle">true</item>        <item name="android:windowIsTranslucent">true</item>    </style>
建立一個style,在資訊清單檔裡引用即可。

至此,側滑退出的效果就可以實現啦,是不是很炫酷,有好的東西持續分享給大家,部落格持續更新中。。。




相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.