Android中Activity滑动关闭的效果

Android中Activity滑动关闭的效果攻略

在Android应用中,可以通过实现滑动关闭的效果,让用户通过滑动手势来关闭当前的Activity。下面是一个详细的攻略,包含了两个示例说明。

示例1:使用第三方库

  1. 首先,在项目的build.gradle文件中添加以下依赖项:
dependencies {
    implementation 'com.github.JakeWharton:ViewPagerIndicator:2.4.1'
}
  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:自定义实现

  1. 在需要实现滑动关闭效果的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技术站

(0)
上一篇 2023年8月21日
下一篇 2023年8月21日

相关文章

  • CEF C++调用前端js方法展示传递过来的图片数据

    CEF C++调用前端js方法展示传递过来的图片数据 当我们需要在一个桌面应用程序中展示动态的图片数据时,通常情况下我们可以使用网络图片,但是如果需要展示本地的图片呢?这时候,我们可以使用 CEF (Chromium Embedded Framework) 以及前端的 JavaScript 技术来实现这一需求。 CEF 简介 CEF 是一个基于 Chromi…

    其他 2023年3月28日
    00
  • 荣耀50pro开发者选项如何开启?荣耀50pro打开开发者选项的方法

    荣耀50pro的开发者选项可以通过以下简单步骤来进行开启: 1. 打开“设置”应用 在荣耀50pro的主屏幕上,点击图标为“设置”的应用,打开设备的系统设置。 2. 进入设备信息页面 在“设置”应用主页中,向下滚动直至找到“关于手机”选项,点击进入。 3. 点击版本号 在“关于手机”页面中找到“版本号”选项,并持续点击此选项,直至屏幕上显示“您已成为开发者”…

    other 2023年6月26日
    00
  • Vue nextTick延迟回调获取更新后DOM机制详解

    Vue.js是一款非常流行的JavaScript框架,它提供了响应式和组件化的视图组织方式。但是,当我们需要在更新数据后执行一些DOM操作时,由于Vue是异步更新DOM的,可能会导致DOM尚未更新就执行了操作,为了解决这个问题,Vue提供了nextTick方法。 什么时候使用nextTick 在Vue中,更新数据是异步进行的。也就是说,当组件更新数据时,DO…

    other 2023年6月27日
    00
  • BAT脚本编写教程(比较易懂和全面)

    BAT脚本编写教程(比较易懂和全面) 什么是BAT脚本? BAT脚本是Windows系统中的一种批处理脚本,是由一组DOS命令和系统命令组成的文本文件,可通过BAT文件运行。BAT脚本可以方便地用来自动化执行一些重复性的任务,例如自动备份数据,批量修改文件名等。 编写BAT脚本的基本规则 BAT脚本使用批处理命令,每个命令占一行,不可换行。 BAT脚本可以使…

    other 2023年6月26日
    00
  • 常见路由器默认IP地址整理总结

    常见路由器默认IP地址整理总结攻略 路由器是连接计算机网络的设备,它使用IP地址来进行通信和管理网络流量。在设置路由器之前,我们需要知道它的默认IP地址。下面是一份常见路由器默认IP地址的整理总结攻略。 1. 查找路由器品牌和型号 首先,我们需要查找路由器的品牌和型号。这通常可以在路由器的外部或底部找到。品牌和型号的信息对于确定默认IP地址非常重要,因为不同…

    other 2023年7月30日
    00
  • 物理内存和虚拟内存是什么意思各有什么作用

    物理内存和虚拟内存的作用 物理内存 物理内存是计算机中用于存储数据和程序的硬件设备,也被称为主存或随机存储器(RAM)。它是计算机中最快速的存储介质之一,用于存储正在运行的程序和数据。 物理内存的主要作用包括: 程序执行:物理内存存储了当前正在运行的程序的指令和数据。当程序被加载到物理内存中时,CPU可以直接访问这些指令和数据,从而加快程序的执行速度。 数据…

    other 2023年8月1日
    00
  • Android实现单项、多项选择操作

    Android实现单项、多项选择操作攻略 在Android开发中,实现单项和多项选择操作是非常常见的需求。下面是一个详细的攻略,包含了实现这两种选择操作的步骤和示例说明。 单项选择操作 步骤1:准备布局文件 首先,我们需要准备一个布局文件来显示选择项。可以使用RadioButton或者CheckBox来实现单项选择。以下是一个示例布局文件: <Line…

    other 2023年9月7日
    00
  • oracle的connect和resource角色权限

    Oracle的Connect和Resource角色权限 在Oracle数据库中,Connect和Resource是两个常用的角色,它们分别授予用户不同的权限。本文将提供一份关于Oracle的Connect和Resource角色权限的完整攻略,包括它们的定义、区别、权限以及示例说明。 Connect角色 Connect角色是Oracle数据库中的一个预定义角色…

    other 2023年5月9日
    00
合作推广
合作推广
分享本页
返回顶部