当前位置: 首页 > news >正文

网站制作前言公司济南建设网站的公司

网站制作前言公司,济南建设网站的公司,有专门做网站的吗,网站上推广游戏怎么做最近重新搭了个app,发现手机显示APP主界面时,沿着手机右边向左滑,会直接关闭应用,所以想搞个第一次提示,第二次退出app的效果。 结果搞出个复杂的东西,下面是两段代码。1: 1:GestureDetector扩展函数。其…

最近重新搭了个app,发现手机显示APP主界面时,沿着手机右边向左滑,会直接关闭应用,所以想搞个第一次提示,第二次退出app的效果。

结果搞出个复杂的东西,下面是两段代码。1:

1:GestureDetector+扩展函数。其实这个我觉得自己写的挺好,在一些不是系统级的滑动场景下应该有用。但时在返回退出这个需求上无法监听,实现效果。。。

class SwipeGestureListener(private val context:Context,private val onSwipeLeft:()->Unit):GestureDetector.SimpleOnGestureListener() {override fun onFling(e1: MotionEvent,e2: MotionEvent,velocityX: Float,velocityY: Float): Boolean {Log.e("滑动","onFling")val deltaX =e2.x -e1.xval deltaY =e2.y -e1.yif (Math.abs(deltaX)>Math.abs(deltaY) && deltaX<0){onSwipeLeft.invoke()return true}return false}//    override fun onScroll(
//        e1: MotionEvent,
//        e2: MotionEvent,
//        distanceX: Float,
//        distanceY: Float
//    ): Boolean {
//        Log.e("滑动","onScroll")
//        // 判断手势为从右到左的滑动,并且滑动距离较大
//        if (distanceX < 0 && Math.abs(distanceX) > Math.abs(distanceY)) {
//            onSwipeLeft.invoke()
//            return true
//        }
//
//        return false
//    }}/*** AppCompatActivity的扩展函数。*/
fun AppCompatActivity.setupSwipeGesture(view: View,onSwipeLeft: () -> Unit
):GestureDetector{val gestureDetector =GestureDetector(this,SwipeGestureListener(this,onSwipeLeft))view.setOnTouchListener{_,event->gestureDetector.onTouchEvent(event)}return gestureDetector
}

理解这段代码需要考虑两个主要部分:SwipeGestureListener 类和 setupSwipeGesture 扩展函数。

首先,SwipeGestureListener 类是一个实现了 GestureDetector.SimpleOnGestureListener 的监听器,用于处理左滑手势。它有一个构造函数,接受一个 Context 和一个 lambda 表达式 onSwipeLeft: () -> Unit。在 onFling 方法中,我们检测手势为向左滑动,并在满足条件时调用传入的 onSwipeLeft lambda 表达式。

接下来,我们有一个扩展函数 setupSwipeGesture,它是一个在 AppCompatActivity 上定义的扩展函数。这个函数接受一个 lambda 表达式 onSwipeLeft: () -> Unit,并返回一个 GestureDetector 对象。在这个函数中,我们创建了一个 SwipeGestureListener 实例,并将传入的 onSwipeLeft lambda 表达式作为参数传递。然后,我们设置 onTouchListener,并在其中调用 gestureDetector.onTouchEvent(event),以处理触摸事件。

最后,在 MainActivity 中,我们在 onCreate 方法中调用了 setupSwipeGesture,并传入了一个处理左滑的 lambda 表达式 handleLeftSwipe。在 handleLeftSwipe 方法中,我们根据时间间隔判断是否显示退出提示。

class MainActivity : AppCompatActivity() {private lateinit var gestureDetector: GestureDetectorprivate var lastSwipeTime: Long = 0override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)gestureDetector = setupSwipeGesture {handleLeftSwipe()}}private fun handleLeftSwipe() {val currentTime = System.currentTimeMillis()// 如果两次左滑的时间间隔小于2秒,且次数为1,显示提示if (currentTime - lastSwipeTime < 2000) {showExitToast()finish()}// 更新上一次左滑时间lastSwipeTime = currentTime}
}

总的来说,这段代码的原理是通过使用 GestureDetectorSwipeGestureListener 来监听左滑手势,然后在满足条件时执行特定的逻辑。这样的设计使得代码更加模块化和易于理解。

2.老办法onKeyDown,简单好用

    override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {if (keyCode == KeyEvent.KEYCODE_BACK && event?.action == KeyEvent.ACTION_DOWN){if (System.currentTimeMillis() - lastSwipeTime > 2000) {lastSwipeTime = System.currentTimeMillis()"再按一次退出".showToast(this)Log.e("","再按一次退出")} else {finish()}return true}return super.onKeyDown(keyCode, event)}

这个就不用解释了吧。

http://www.yayakq.cn/news/352645/

相关文章:

  • 商城网站模板免费下载做网站犯法
  • 企业网站 flash新网站必须做301定向吗
  • 小游戏网站欣赏wp-wordpress
  • 网站工信部不备案吗网站所属权
  • 备案用什么网站名称好免费app下载
  • 做个网站要多少钱 一般网站设计标题
  • 景安网站备案的服务码微信小程序商城开发教程
  • 海淀网站建设怎么样苏州微网站建设公司哪家好
  • 网站外链怎么发布重庆seo搜索引擎优化平台
  • 网架公司和网架加工厂的区别最好的网站排名优化工作室
  • 调查队网站建设企业网站的网址通常包含
  • 张家界网站制作与代运营北京做网站公司排
  • 寮步镇网站建设公司百度认证
  • 数据处理网站开发徐州关键词优化如何
  • 陕西交通建设集团西商分公司网站登封网站建设公司
  • 坪山网站建设基本流程视频直播平台哪个好
  • 建设工程职称论文查询网站中创高科官方网站
  • 一般建站需要多少钱厦门网站开发比较大的公司
  • 南通的网站建设关键词在线挖掘网站
  • kali钓鱼网站制作专业网站建设组织
  • 上海建设网站方法简单的html网页制作
  • 设计类网站开发策划书公司变更法人一般需要多少时间
  • 嘉兴定制型网站建设宁波seo外包费用
  • 公司网站建设怎么选择武隆网站建设
  • 合肥企业做网站亿唐网不做网站做品牌案例分析
  • 51的网站是啥手机上安装wordpress
  • 网站设计有限公司wordpress集成
  • 网站源码建站教程推广网站赚钱
  • 福州++网站建设制作购物网站教程
  • .net做网站的优缺点北京工程建设交易信息网官网