当我们谈论刷卡时,我们想到的是 "ViewPager",它通常被用来刷 "fragments",甚至有时是刷视图。然而不是`活动’。如果你想把 "活动 "作为一个组件来刷,你必须使用 "GestureDetector "类。

在本教程中,你将学习。

  1. 如何使用 "GestureDetector "API来刷新 "活动"。

为什么选择本教程?

  1. 用Kotlin编写的例子。
  2. 2.实用且快速。
  3. 循序渐进。
  4. 编写并验证了在android studio中的工作。

(a). 例子1 – 如何用刷子刷一个活动来打开另一个活动

这个例子探讨了如何刷一个 "活动 "来打开另一个 "活动"。基本上你拉下一个 "活动",就会打开另一个 "活动"。

风水2023年的颜色提示 fs

风水2023年的颜色提示 fs
风水2023年的颜色提示 fs

第1步:依赖性

这个项目不需要依赖第三方。

第2步:代码

我们用Kotlin编写我们的代码。我们将有三个类。

SwipeToActivity.kt

package info.camposha.mr_swipeactivity

import android.app.Activity
import android.content.Context
import android.content.Intent
import android.view.GestureDetector.SimpleOnGestureListener
import android.view.MotionEvent

class SwipeToActivity(//the activity where you will change activity from
    var context: Context,
    var firstClass: Class<*>?,
    var left: Boolean,
    var right: Boolean, //these enable sliding to left, right or both directions
    var both: Boolean, //first class is the class you come to when sliding to right, second class when you slide left
    var secondClass: Class<*>?
) : SimpleOnGestureListener() {
    override fun onFling(
        event1: MotionEvent,
        event2: MotionEvent,
        velocityX: Float,
        velocityY: Float
    ): Boolean {
        if (event2.x > event1.x) {
            if (right || both && firstClass != null) {
                //TODO WHEN SWIPING TO RIGHT
                val intent = Intent(context, firstClass)
                (context as Activity).finish()
                context.startActivity(intent)
            }
        } else if (event2.x < event1.x) {
            if (left || both && secondClass != null) {
                //TODO WHEN SWIPING TO LEFT
                val intent = Intent(context, secondClass)
                (context as Activity).finish()
                context.startActivity(intent)
            }
        }
        return true
    }
}

SecondActivity.kt

package info.camposha.mr_swipeactivity

import android.os.Bundle
import android.view.MotionEvent
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.GestureDetectorCompat

class SecondActivity : AppCompatActivity() {
    private var gestureObject: GestureDetectorCompat? = null
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_second)
        gestureObject = GestureDetectorCompat(
            this,
            SwipeToActivity([email protected], null, true, false, false, MainActivity::class.java)
        )
    }

    override fun onTouchEvent(event: MotionEvent): Boolean {
        gestureObject!!.onTouchEvent(event)
        return super.onTouchEvent(event)
    }
}

MainActivity.kt

package info.camposha.mr_swipeactivity

import android.os.Bundle
import android.view.MotionEvent
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.GestureDetectorCompat
import info.camposha.mr_swipeactivity.MainActivity

class MainActivity : AppCompatActivity() {
    private var gestureObject: GestureDetectorCompat? = null
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        gestureObject = GestureDetectorCompat(
            this,
            SwipeToActivity([email protected], SecondActivity::class.java, false, true, false, null)
        )
    }

    override fun onTouchEvent(event: MotionEvent): Boolean {
        gestureObject!!.onTouchEvent(event)
        return super.onTouchEvent(event)
    }
}

第三步:布局

在源代码参考中查找布局。

第四步:运行

运行该项目,你会得到以下结果。

Kotlin Android <code>GestureDetector</code>实例

第五步:下载

这里下载代码。