Android中Activity滑动关闭的效果攻略
在Android应用中,可以通过实现滑动关闭的效果,让用户通过滑动手势来关闭当前的Activity。下面是一个详细的攻略,包含了两个示例说明。
示例1:使用第三方库
- 首先,在项目的build.gradle文件中添加以下依赖项:
dependencies {
implementation 'com.github.JakeWharton:ViewPagerIndicator:2.4.1'
}
- 在需要实现滑动关闭效果的Activity中,添加以下代码:
import com.jakewharton.viewpagerindicator.OnPageChangeListener;
public class MyActivity extends AppCompatActivity implements OnPageChangeListener {
private ViewPager mViewPager;
private PagerAdapter mAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
mViewPager = findViewById(R.id.viewPager);
mAdapter = new MyPagerAdapter(getSupportFragmentManager());
mViewPager.setAdapter(mAdapter);
mViewPager.addOnPageChangeListener(this);
}
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
// 实现滑动关闭的逻辑
if (position == mAdapter.getCount() - 1 && positionOffset == 0 && positionOffsetPixels == 0) {
finish();
}
}
@Override
public void onPageSelected(int position) {
// Do nothing
}
@Override
public void onPageScrollStateChanged(int state) {
// Do nothing
}
}
示例2:自定义实现
- 在需要实现滑动关闭效果的Activity中,添加以下代码:
public class MyActivity extends AppCompatActivity {
private float startX;
private float startY;
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
startX = event.getX();
startY = event.getY();
break;
case MotionEvent.ACTION_MOVE:
float endX = event.getX();
float endY = event.getY();
float distanceX = endX - startX;
float distanceY = endY - startY;
// 判断滑动方向和距离
if (Math.abs(distanceX) > Math.abs(distanceY) && Math.abs(distanceX) > 100) {
if (distanceX > 0) {
// 向右滑动
finish();
} else {
// 向左滑动
// Do nothing
}
}
break;
case MotionEvent.ACTION_UP:
// Do nothing
break;
}
return super.onTouchEvent(event);
}
}
以上就是实现Android中Activity滑动关闭的两个示例说明。你可以根据自己的需求选择其中一种方式来实现滑动关闭效果。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Android中Activity滑动关闭的效果 - Python技术站