app侧边滑动退出
时间: 2023-08-07 21:06:40 浏览: 134
Android 侧边栏滑出(或单击滑出)
4星 · 用户满意度95%
实现侧边滑动退出可以通过以下步骤:
1. 在 `AndroidManifest.xml` 文件中设置对应 Activity 的 `android:theme` 属性为 `@style/Theme.AppCompat.Translucent`。
2. 在该 Activity 的 `onCreate()` 方法中添加以下代码:
```java
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
}
```
这段代码的作用是使状态栏透明。
3. 实现侧边滑动退出的效果。可以通过自定义一个 `GestureDetector` 来捕获用户的手势,然后判断手势是不是从屏幕左边缘向右滑动,并且滑动的距离超过一定值,就触发退出操作。可以参考以下代码:
```java
private GestureDetector mGestureDetector;
private static final int MIN_SWIPE_DISTANCE = 120;
@Override
public boolean dispatchTouchEvent(MotionEvent event) {
if (mGestureDetector != null) {
mGestureDetector.onTouchEvent(event);
}
return super.dispatchTouchEvent(event);
}
private void initGestureDetector() {
mGestureDetector = new GestureDetector(this, new GestureDetector.SimpleOnGestureListener() {
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
if (e1.getX() - e2.getX() > MIN_SWIPE_DISTANCE && Math.abs(velocityX) > Math.abs(velocityY)) {
finish();
overridePendingTransition(0, R.anim.slide_out_right);
return true;
}
return false;
}
});
}
```
在 `onCreate()` 方法中调用 `initGestureDetector()` 方法进行初始化。
4. 实现退出时的动画效果。可以在 `res/anim` 目录下创建一个 `slide_out_right.xml` 文件,内容如下:
```xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromXDelta="0"
android:toXDelta="100%"
android:duration="300" />
</set>
```
这个文件定义了一个从左往右滑出的动画效果。
至此,侧边滑动退出功能就实现了。
阅读全文