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

网站产品内页设计蚂蜂窝网站分析

网站产品内页设计,蚂蜂窝网站分析,安徽省建设厅网站张天培,广东省网站集约化建设最近重新搭了个app#xff0c;发现手机显示APP主界面时#xff0c;沿着手机右边向左滑#xff0c;会直接关闭应用#xff0c;所以想搞个第一次提示#xff0c;第二次退出app的效果。 结果搞出个复杂的东西#xff0c;下面是两段代码。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) deltaX0){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} } 总的来说这段代码的原理是通过使用 GestureDetector 和 SwipeGestureListener 来监听左滑手势然后在满足条件时执行特定的逻辑。这样的设计使得代码更加模块化和易于理解。 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.dnsts.com.cn/news/218073.html

相关文章:

  • 可以做游戏的网站有哪些方面做网站推广的公司
  • 衡阳网站优化实时新闻在哪里能查到
  • 海川建设公司网站手机ps在线图片编辑
  • seo云优化seo教程 百度网盘
  • 答题网站怎么做驻马店市可以做网站的公司
  • 宁波企业建站程序成都建站免费模板
  • 电商网站域名规则加强人社局网站建设
  • 网站建设使用的什么语言西安网站开发培训价格
  • 以下属于网站的管理 更新 维护ui设计自学教程500集
  • 加强网站建设 统计局免费网站制作新闻
  • 网站建设通常用到哪些编程重庆建设摩托车股份有限公司官网
  • 做电子章网站php企业网站 源码
  • 邢台网站建设03191688温州推广团队
  • 个人网站怎么做才能值钱wap网站制作怎么做
  • 网站模板 餐饮网站建设服务费入什么科目
  • 网站建设调查报告范文wordpress 去除评论框
  • 自己做的网站怎么搜不到wordpress页面排版
  • 上海网站制作顾问济宁贵网站建设
  • 现在外国有哪个网站可以做卖东西网络营销渠道有哪些
  • 建设网站要注意什么wordpress 重新生成缩略图
  • 更改备案网站名称仿牌网站流量
  • 怎么样创建网站天津网站建设wangzhii
  • wordpress 设置多域名 一个站点网站建设手机端官网
  • 临沂市网站建设做网站怎么把背景变成纯色
  • 做网站外包创业网站分页符素材
  • 开发做网站公司程序员做个网站要多少钱呢
  • 律师事务所网站设计wordpress修改网站菜单位置
  • 怎么用dw设计网站页面如何制作企业官网
  • 做网站公奇闻司郑州汉狮网上做夫妻的网站
  • 河北网站备案手机号码短信核验网站的建设任务