Android 侧边滑动关闭Activity的示例代码
发布时间:2023-05-15 15:23:01
Android 侧边滑动关闭Activity的示例代码
在Android应用程序中,经常需要使用侧边滑动关闭Activity的功能。本文将介绍如何在Android应用程序中实现侧边滑动关闭Activity的功能。
首先,需要在项目中引入Android侧滑库SlidingMenu。在build.gradle文件中添加以下代码:
dependencies {
implementation 'com.jeremyfeinstein.slidingmenu:slidingmenu:1.3@aar'
}
然后,在布局文件中添加SlidingMenu控件,并设置其侧边栏的内容和主页面的内容。以下是示例布局代码:
<?xml version="1.0" encoding="utf-8"?>
<com.jeremyfeinstein.slidingmenu.lib.SlidingMenu
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:sliding="http://schemas.android.com/apk/res-auto"
android:id="@+id/sliding_menu"
android:layout_width="match_parent"
android:layout_height="match_parent"
sliding:viewAbove="@layout/activity_main"
sliding:viewBehind="@layout/menu_layout"
sliding:behindOffset="120dp"
sliding:behindScrollScale="0.5"
sliding:mode="left">
</com.jeremyfeinstein.slidingmenu.lib.SlidingMenu>
在activity中,需要初始化SlidingMenu控件,设置其监听事件和滑动方向。以下是示例代码:
SlidingMenu slidingMenu = new SlidingMenu(this);
slidingMenu.setMode(SlidingMenu.LEFT);
slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
slidingMenu.setMenu(R.layout.menu_layout);
slidingMenu.setBehindOffset(120);
slidingMenu.setBehindScrollScale(0.5f);
slidingMenu.attachToActivity(this, SlidingMenu.SLIDING_WINDOW);
slidingMenu.setOnOpenedListener(new SlidingMenu.OnOpenedListener() {
@Override
public void onOpened() {
// 侧边栏被打开
}
});
slidingMenu.setOnClosedListener(new SlidingMenu.OnClosedListener() {
@Override
public void onClosed() {
// 侧边栏被关闭
}
});
最后,需要在activity中处理侧边滑动事件,当滑动距离达到一定值时关闭当前Activity。以下是示例代码:
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
downX = event.getX();
break;
case MotionEvent.ACTION_UP:
float upX = event.getX();
if (upX - downX > 300) {
finish();
}
break;
}
return super.onTouchEvent(event);
}
在上面的代码中,通过记录按下的x轴坐标和抬起的x轴坐标,计算出滑动的距离,当距离大于300时关闭Activity。
完整的Activity示例代码如下:
public class MainActivity extends AppCompatActivity {
private float downX;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SlidingMenu slidingMenu = new SlidingMenu(this);
slidingMenu.setMode(SlidingMenu.LEFT);
slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
slidingMenu.setMenu(R.layout.menu_layout);
slidingMenu.setBehindOffset(120);
slidingMenu.setBehindScrollScale(0.5f);
slidingMenu.attachToActivity(this, SlidingMenu.SLIDING_WINDOW);
slidingMenu.setOnOpenedListener(new SlidingMenu.OnOpenedListener() {
@Override
public void onOpened() {
// 侧边栏被打开
}
});
slidingMenu.setOnClosedListener(new SlidingMenu.OnClosedListener() {
@Override
public void onClosed() {
// 侧边栏被关闭
}
});
setContentView(R.layout.activity_main);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
downX = event.getX();
break;
case MotionEvent.ACTION_UP:
float upX = event.getX();
if (upX - downX > 300) {
finish();
}
break;
}
return super.onTouchEvent(event);
}
}
总结:本文介绍了如何通过SlidingMenu控件实现在Android应用程序中侧边滑动关闭Activity的功能。关键点包括引入SlidingMenu库、初始化SlidingMenu控件、处理SlidingMenu监听事件和滑动事件等。
