Android 快速實現右滑退出效果
阿新 • • 發佈:2019-02-16
快速實現右滑退出
本人使用的是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">
到這裡,就可以隨意玩耍啦,去耍吧。