Android中Activity滑动关闭的效果

yizhihongxing

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日

相关文章

  • 一篇文章教你JS函数继承

    一篇文章教你JS函数继承的完整攻略 什么是JS函数继承 JS函数继承是指一个函数可以通过继承另一个函数的属性和方法来扩展自己的功能。在JS中,可以通过原型链实现函数继承。 实现JS函数继承的步骤 实现一个父类函数 继承父类函数的属性和方法 扩展自己的功能 实现一个父类函数 function Person(name, age) { this.name = na…

    other 2023年6月26日
    00
  • vant 解决tab切换插件标题样式自定义的问题

    Vant 解决 Tab 切换插件标题样式自定义的问题攻略 问题描述 Vant 是一款基于 Vue.js 的移动端组件库,其中的 Tab 切换插件提供了丰富的功能和样式。然而,在某些情况下,我们可能需要自定义 Tab 切换插件的标题样式,以满足特定的设计需求。本攻略将详细介绍如何使用 Vant 提供的自定义功能来解决这个问题。 步骤 步骤 1:安装 Vant …

    other 2023年6月28日
    00
  • javaweb中struts开发——bean标签

    javaweb中struts开发——bean标签 Struts是一个MVC框架,它使用JSP做Web视图,而JavaBean是作为模型的Java类。Struts使用bean标签将JavaBean绑定到表单中,处理前端与后端的信息交互,让开发更加便利。 1. bean标签 在Struts中,bean标签用于在JSP页面中创建JavaBean对象,设置属性和获取…

    其他 2023年3月28日
    00
  • Android自定义view之太极图的实现教程

    下面我来详细讲解“Android自定义view之太极图的实现教程”的完整攻略。 1.前置知识 在学习“Android自定义view之太极图的实现教程”前,我们需要学习以下知识: Android绘图API Android绘图API主要包含以下几个核心类:Canvas(画布)、Paint(画笔)、Path(路径)、Rect(矩形)等。我们需要掌握这些类的基本用法…

    other 2023年6月25日
    00
  • Win10更新四月正式版17134.166累积更新补丁 附更新内容和下载地址

    Win10更新四月正式版17134.166累积更新补丁攻略 本攻略将详细讲解Win10更新四月正式版17134.166累积更新补丁的安装过程,并提供更新内容和下载地址。请按照以下步骤进行操作: 步骤一:检查系统版本 首先,确保你的系统版本是Win10更新四月正式版17134.166。你可以通过以下步骤检查: 打开“设置”应用程序。 点击“系统”。 在左侧导航…

    other 2023年8月4日
    00
  • C++、python和go语言实现的简单客户端服务器代码示例

    我们来详细讲解一下C++、Python和Go语言实现的简单客户端服务器代码示例。 C++ 实现简单客户端服务器 使用C++实现一个简单的客户端和服务器端交互的程序,可以使用TCP/IP协议,以下是一份C++实现简单客户端服务器的示例代码。 服务器端代码 #include <iostream> #include <winsock2.h>…

    other 2023年6月27日
    00
  • jQuery 获取浏览器所在的IP地址的小例子

    jQuery 获取浏览器所在的IP地址的小例子攻略 介绍 在本攻略中,我们将使用jQuery来获取浏览器所在的IP地址。IP地址是一个用于标识设备在网络中位置的唯一地址。通过获取IP地址,我们可以实现一些有趣的功能,比如根据用户的地理位置提供个性化的内容。 步骤 步骤 1: 引入jQuery库 首先,我们需要在HTML文件中引入jQuery库。你可以从官方网…

    other 2023年7月30日
    00
  • Ajax实现异步刷新验证用户名是否已存在的具体方法

    针对您的问题,Ajax实现异步刷新验证用户名是否已存在的具体方法可以分为以下几个步骤: 创建一个输入框和一个按钮用于输入和提交用户名 <input type="text" id="username"> <button onclick="checkUsername()">检查用…

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