1. 程式人生 > >Android 快速實現右滑退出效果

Android 快速實現右滑退出效果

快速實現右滑退出

本人使用的是GitHub上的開源庫 SwipeBack

整合右滑退出效果首先需要將庫引用到我們的專案中,這裡通過gradle的方式匯入

compile ‘me.imid.swipebacklayout.lib:library:1.1.0’

引入專案之後,我們讓我們的基類繼承 SwipeBackActivity,之後配置如下

public abstract class BaseActivity extends SwipeBackActivity  {

   /**
     * 右滑退出
     */
private SwipeBackLayout mSwipeBackLayout;

@Override
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(getResViewId()); //初始化右滑退出 initSwipeBack(); } /** * 初始化右滑退出 */ private void initSwipeBack() { // 可以呼叫該方法,設定是否允許滑動退出 setSwipeBackEnable(true
); mSwipeBackLayout = getSwipeBackLayout(); // 設定滑動方向,可設定EDGE_LEFT, EDGE_RIGHT, EDGE_ALL, EDGE_BOTTOM mSwipeBackLayout.setEdgeTrackingEnabled(SwipeBackLayout.EDGE_LEFT); // 滑動退出的效果只能從邊界滑動才有效果,如果要擴大touch的範圍,可以呼叫這個方法 // mSwipeBackLayout.setEdgeSize(200); } /** * 關閉右滑退出 */
protected void closeSwipeBack() { setSwipeBackEnable(false); } }

現在只需在不需要使用右滑退出的activity(比如MainActivity)中呼叫 closeSwipeBack() 方法就可以隨意使用啦,跑起來後我們發現滑動效果有了,但是上一層activity是黑色的,如下圖

要解決這個問題,我們就需要設定背景透明,我們需要在 style檔案中的AppTheme中加一條屬性


   <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>

        <!--加上這條屬性,就能解決滑動關閉時,頁面黑屏的問題 -->
        <item name="android:windowIsTranslucent">true</item>


    </style>

將這個Style在AndroidManifest裡設定到 Application 中

   <application
          ...
          ...
        android:theme="@style/AppTheme">

到這裡,就可以隨意玩耍啦,去耍吧。