Преглед изворни кода

1.点击控件添加动画效果

王鹏鹏 пре 2 година
родитељ
комит
41b7549076
17 измењених фајлова са 594 додато и 162 уклоњено
  1. 33 8
      livebroadcast/src/main/java/com/yingyang/livebroadcast/activity/detail/LiveBroadcastActivity.kt
  2. 34 10
      livebroadcast/src/main/java/com/yingyang/livebroadcast/activity/list/LiveBroadcastListActivity.kt
  3. 32 7
      livebroadcast/src/main/java/com/yingyang/livebroadcast/activity/video/VideoPlayerActivity.kt
  4. 45 18
      login/src/main/java/com/yingyang/login/ui/login/LoginActivity.kt
  5. 8 0
      login/src/main/res/anim/leftin.xml
  6. 8 0
      login/src/main/res/anim/leftout.xml
  7. 34 9
      personalcenter/src/main/java/com/yingyang/personalcenter/help/HelpActivity.kt
  8. 62 23
      personalcenter/src/main/java/com/yingyang/personalcenter/personalcenter/PersonalCenterActivity.kt
  9. 67 29
      personalcenter/src/main/java/com/yingyang/personalcenter/setting/SettingActivity.kt
  10. 32 10
      personalcenter/src/main/java/com/yingyang/personalcenter/version/VersionRecordActivity.kt
  11. 33 5
      push/src/main/java/com/yingyang/push/activity/MessgeListActivity.kt
  12. 33 5
      workbenches/src/main/java/com/yingyang/workbenches/freetraining/FreeTrainActivity.kt
  13. 32 7
      workbenches/src/main/java/com/yingyang/workbenches/leisurebrain/LeisureBrainActivity.kt
  14. 33 8
      workbenches/src/main/java/com/yingyang/workbenches/orderlist/OrderListActivity.kt
  15. 41 10
      workbenches/src/main/java/com/yingyang/workbenches/servicepackage/ServicePackageActivity.kt
  16. 33 5
      workbenches/src/main/java/com/yingyang/workbenches/traincontentdetails/TrainContentDetailsActivity.kt
  17. 34 8
      workbenches/src/main/java/com/yingyang/workbenches/traindata/TrainDataActivity.kt

+ 33 - 8
livebroadcast/src/main/java/com/yingyang/livebroadcast/activity/detail/LiveBroadcastActivity.kt

@@ -1,7 +1,10 @@
 package com.yingyang.livebroadcast.activity.detail
 
+import android.annotation.SuppressLint
 import android.os.Bundle
 import android.util.Log
+import android.view.MotionEvent
+import android.view.View
 import com.alibaba.android.arouter.facade.annotation.Route
 import com.tencent.bugly.crashreport.CrashReport
 import com.tencent.imsdk.v2.*
@@ -9,21 +12,23 @@ import com.tencent.live2.V2TXLiveDef.V2TXLiveVideoFrame
 import com.tencent.live2.V2TXLivePlayer
 import com.tencent.live2.V2TXLivePlayerObserver
 import com.tencent.live2.impl.V2TXLivePlayerImpl
+import com.yingyang.livebroadcast.R
 import com.yingyang.livebroadcast.databinding.ActivityLiveBroadcastBinding
 import com.yingyangfly.baselib.config.AccountConfig
-import com.yingyangfly.baselib.ext.setOnSingleClickListener
+import com.yingyangfly.baselib.ext.getEndAnimation
+import com.yingyangfly.baselib.ext.getScaleAnimation
 import com.yingyangfly.baselib.ext.toast
 import com.yingyangfly.baselib.mvvm.BaseMVVMActivity
 import com.yingyangfly.baselib.router.RouterUrlCommon
 import com.yingyangfly.baselib.utils.User
 
-
 /**
  * 直播页面
  */
 @Route(path = RouterUrlCommon.liveBroadcast)
 class LiveBroadcastActivity :
-    BaseMVVMActivity<ActivityLiveBroadcastBinding, LiveBroadcastDetailViewModel>() {
+    BaseMVVMActivity<ActivityLiveBroadcastBinding, LiveBroadcastDetailViewModel>(),
+    View.OnTouchListener {
 
     private val TAG = "LiveBroadcastActivity"
     private var url: String = ""
@@ -42,12 +47,9 @@ class LiveBroadcastActivity :
 //        initIm()
     }
 
+    @SuppressLint("ClickableViewAccessibility")
     override fun initListener() {
-        binding {
-            backLayout.setOnSingleClickListener {
-                finish()
-            }
-        }
+        binding.backLayout.setOnTouchListener(this@LiveBroadcastActivity)
     }
 
     override fun initData() {
@@ -215,4 +217,27 @@ class LiveBroadcastActivity :
             mLivePlayer = null
         }
     }
+
+    @SuppressLint("ClickableViewAccessibility")
+    override fun onTouch(v: View, event: MotionEvent): Boolean {
+        when (event.action) {
+            MotionEvent.ACTION_DOWN -> {
+                if (v.id == R.id.backLayout) {
+                    v.startAnimation(getScaleAnimation())
+                }
+            }
+            MotionEvent.ACTION_UP -> {
+                v.startAnimation(getEndAnimation())
+                if (v.id == R.id.backLayout) {
+                    finish()
+                }
+            }
+            MotionEvent.ACTION_CANCEL -> {
+                if (v.id == R.id.backLayout) {
+                    v.startAnimation(getEndAnimation())
+                }
+            }
+        }
+        return true
+    }
 }

+ 34 - 10
livebroadcast/src/main/java/com/yingyang/livebroadcast/activity/list/LiveBroadcastListActivity.kt

@@ -1,15 +1,18 @@
 package com.yingyang.livebroadcast.activity.list
 
+import android.annotation.SuppressLint
+import android.view.MotionEvent
+import android.view.View
 import androidx.recyclerview.widget.GridLayoutManager
 import com.alibaba.android.arouter.facade.annotation.Route
 import com.alibaba.android.arouter.launcher.ARouter
-import com.scwang.smartrefresh.layout.api.RefreshLayout
 import com.yingyang.livebroadcast.R
 import com.yingyang.livebroadcast.adapter.LiveBroadcastAdapter
 import com.yingyang.livebroadcast.databinding.ActivityLiveBroadcastListBinding
 import com.yingyang.livebroadcast.entity.Record
 import com.yingyangfly.baselib.dialog.TipDialogFragment
-import com.yingyangfly.baselib.ext.setOnSingleClickListener
+import com.yingyangfly.baselib.ext.getEndAnimation
+import com.yingyangfly.baselib.ext.getScaleAnimation
 import com.yingyangfly.baselib.ext.show
 import com.yingyangfly.baselib.ext.toast
 import com.yingyangfly.baselib.mvvm.BaseMVVMActivity
@@ -24,9 +27,10 @@ import com.yingyangfly.baselib.utils.JumpUtil
  */
 @Route(path = RouterUrlCommon.liveBroadcastList)
 class LiveBroadcastListActivity :
-    BaseMVVMActivity<ActivityLiveBroadcastListBinding, LiveBroadcastListViewModel>() {
+    BaseMVVMActivity<ActivityLiveBroadcastListBinding, LiveBroadcastListViewModel>(),
+    View.OnTouchListener {
 
-    val permissions = mutableListOf(
+    private val permissions = mutableListOf(
         Permission.WRITE_EXTERNAL_STORAGE,
         Permission.CAMERA,
         Permission.RECORD_AUDIO,
@@ -120,13 +124,10 @@ class LiveBroadcastListActivity :
         })
     }
 
+    @SuppressLint("ClickableViewAccessibility")
     override fun initListener() {
         binding {
-            layoutHome.setOnSingleClickListener {
-                JumpUtil.jumpActivity(RouterUrlCommon.home, mContext)
-                finish()
-            }
-
+            layoutHome.setOnTouchListener(this@LiveBroadcastListActivity)
             liveSwipe.setOnRefreshListener {
                 liveBroadcastAdapter.clearData()
                 liveBroadcastAdapter.showEmptyView = false
@@ -230,8 +231,31 @@ class LiveBroadcastListActivity :
             }, dimiss = true)
             .rightClick({
                 EsayPermissions.gotoPermissionSettings(mContext)
-                null
             }, dimiss = true)
             .show(supportFragmentManager)
     }
+
+    @SuppressLint("ClickableViewAccessibility")
+    override fun onTouch(v: View, event: MotionEvent): Boolean {
+        when (event.action) {
+            MotionEvent.ACTION_DOWN -> {
+                if (v.id == R.id.layoutHome) {
+                    v.startAnimation(getScaleAnimation())
+                }
+            }
+            MotionEvent.ACTION_UP -> {
+                v.startAnimation(getEndAnimation())
+                if (v.id == R.id.layoutHome) {
+                    JumpUtil.jumpActivity(RouterUrlCommon.home, mContext)
+                    finish()
+                }
+            }
+            MotionEvent.ACTION_CANCEL -> {
+                if (v.id == R.id.layoutHome) {
+                    v.startAnimation(getEndAnimation())
+                }
+            }
+        }
+        return true
+    }
 }

+ 32 - 7
livebroadcast/src/main/java/com/yingyang/livebroadcast/activity/video/VideoPlayerActivity.kt

@@ -1,19 +1,24 @@
 package com.yingyang.livebroadcast.activity.video
 
+import android.annotation.SuppressLint
 import android.os.Bundle
+import android.view.MotionEvent
+import android.view.View
 import com.alibaba.android.arouter.facade.annotation.Route
 import com.tencent.liteav.demo.superplayer.SuperPlayerModel
+import com.yingyang.livebroadcast.R
 import com.yingyang.livebroadcast.databinding.ActivityVideoPlayerBinding
 import com.yingyangfly.baselib.base.BaseActivity
 import com.yingyangfly.baselib.config.AccountConfig
-import com.yingyangfly.baselib.ext.setOnSingleClickListener
+import com.yingyangfly.baselib.ext.getEndAnimation
+import com.yingyangfly.baselib.ext.getScaleAnimation
 import com.yingyangfly.baselib.router.RouterUrlCommon
 
 /**
  * 视频播放页面
  */
 @Route(path = RouterUrlCommon.videoPlayer)
-class VideoPlayerActivity : BaseActivity<ActivityVideoPlayerBinding>() {
+class VideoPlayerActivity : BaseActivity<ActivityVideoPlayerBinding>(), View.OnTouchListener {
 
     private var title = ""
     private var url = ""
@@ -35,12 +40,9 @@ class VideoPlayerActivity : BaseActivity<ActivityVideoPlayerBinding>() {
         }
     }
 
+    @SuppressLint("ClickableViewAccessibility")
     override fun initListener() {
-        binding {
-            backLayout.setOnSingleClickListener {
-                finish()
-            }
-        }
+        binding.backLayout.setOnTouchListener(this@VideoPlayerActivity)
     }
 
     override fun initData() {
@@ -56,4 +58,27 @@ class VideoPlayerActivity : BaseActivity<ActivityVideoPlayerBinding>() {
         super.onPause()
     }
 
+    @SuppressLint("ClickableViewAccessibility")
+    override fun onTouch(v: View, event: MotionEvent): Boolean {
+        when (event.action) {
+            MotionEvent.ACTION_DOWN -> {
+                if (v.id == R.id.backLayout) {
+                    v.startAnimation(getScaleAnimation())
+                }
+            }
+            MotionEvent.ACTION_UP -> {
+                v.startAnimation(getEndAnimation())
+                if (v.id == R.id.backLayout) {
+                    finish()
+                }
+            }
+            MotionEvent.ACTION_CANCEL -> {
+                if (v.id == R.id.backLayout) {
+                    v.startAnimation(getEndAnimation())
+                }
+            }
+        }
+        return true
+    }
+
 }

+ 45 - 18
login/src/main/java/com/yingyang/login/ui/login/LoginActivity.kt

@@ -1,10 +1,14 @@
 package com.yingyang.login.ui.login
 
+import android.annotation.SuppressLint
+import android.view.MotionEvent
+import android.view.View
 import com.alibaba.android.arouter.facade.annotation.Route
 import com.alibaba.android.arouter.launcher.ARouter
+import com.yingyang.login.R
 import com.yingyang.login.databinding.ActivityLoginBinding
-import com.yingyangfly.baselib.R
-import com.yingyangfly.baselib.ext.setOnSingleClickListener
+import com.yingyangfly.baselib.ext.getEndAnimation
+import com.yingyangfly.baselib.ext.getScaleAnimation
 import com.yingyangfly.baselib.ext.toast
 import com.yingyangfly.baselib.mvvm.BaseMVVMActivity
 import com.yingyangfly.baselib.router.RouterUrlCommon
@@ -14,29 +18,27 @@ import com.yingyangfly.baselib.utils.User
  * 登录
  */
 @Route(path = RouterUrlCommon.login)
-class LoginActivity : BaseMVVMActivity<ActivityLoginBinding, LoginViewModel>() {
+class LoginActivity : BaseMVVMActivity<ActivityLoginBinding, LoginViewModel>(),
+    View.OnTouchListener {
 
     override fun initViews() {
 
     }
 
+    @SuppressLint("ClickableViewAccessibility")
     override fun initListener() {
-        binding.login.setOnSingleClickListener {
-            if (judge()) {
-                login()
-            }
-        }
+        binding.login.setOnTouchListener(this)
     }
 
     /**
      * 非空验证
      */
     private fun judge(): Boolean {
-        if (binding.username.text.toString().trim().isNullOrEmpty()) {
+        if (binding.username.text.toString().trim().isEmpty()) {
             "请输入用户手机号".toast()
             return false
         }
-        if (binding.username.text.toString().trim().isNullOrEmpty()) {
+        if (binding.username.text.toString().trim().isEmpty()) {
             "请输入用户密码".toast()
             return false
         }
@@ -69,10 +71,10 @@ class LoginActivity : BaseMVVMActivity<ActivityLoginBinding, LoginViewModel>() {
 
     override fun onResume() {
         super.onResume()
-        if (User.getPhone().isNullOrEmpty().not()) {
+        if (User.getPhone().isEmpty().not()) {
             binding.username.setText(User.getPhone())
         }
-        if (User.getPassword().isNullOrEmpty().not()) {
+        if (User.getPassword().isEmpty().not()) {
             binding.password.setText(User.getPassword())
         }
     }
@@ -86,26 +88,26 @@ class LoginActivity : BaseMVVMActivity<ActivityLoginBinding, LoginViewModel>() {
         }, success = {
             if (it != null) {
                 //保存用户头像
-                if (it.avatar.isNullOrEmpty().not()) {
+                if (it.avatar.isEmpty().not()) {
                     User.saveAvatar(it.avatar)
                 }
                 //保存用户名
-                if (it.name.isNullOrEmpty().not()) {
+                if (it.name.isEmpty().not()) {
                     User.saveName(it.name)
                 }
                 //保存医生姓名
-                if (it.doctorName.isNullOrEmpty().not()) {
+                if (it.doctorName.isEmpty().not()) {
                     User.saveDoctorName(it.doctorName)
                 }
                 //保存医生id
-                if (it.doctorId.isNullOrEmpty().not()) {
+                if (it.doctorId.isEmpty().not()) {
                     User.saveDoctorId(it.doctorId)
                 }
-                if (it.id.isNullOrEmpty().not()) {
+                if (it.id.isEmpty().not()) {
                     User.saveUserId(it.id)
                 }
                 //保存是否第一次登陆(0第一次登陆)
-                if (it.firstLogin.isNullOrEmpty().not()) {
+                if (it.firstLogin.isEmpty().not()) {
                     User.saveFirstLogin(it.firstLogin)
                 }
                 ARouter.getInstance().build(RouterUrlCommon.home)
@@ -116,4 +118,29 @@ class LoginActivity : BaseMVVMActivity<ActivityLoginBinding, LoginViewModel>() {
         })
     }
 
+    @SuppressLint("ClickableViewAccessibility")
+    override fun onTouch(v: View, event: MotionEvent): Boolean {
+        when (event.action) {
+            MotionEvent.ACTION_DOWN -> {
+                if (v.id == R.id.login) {
+                    v.startAnimation(getScaleAnimation())
+                }
+            }
+            MotionEvent.ACTION_UP -> {
+                v.startAnimation(getEndAnimation())
+                if (v.id == R.id.login) {
+                    if (judge()) {
+                        login()
+                    }
+                }
+            }
+            MotionEvent.ACTION_CANCEL -> {
+                if (v.id == R.id.login) {
+                    v.startAnimation(getEndAnimation())
+                }
+            }
+        }
+        return true
+    }
+
 }

+ 8 - 0
login/src/main/res/anim/leftin.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<set xmlns:android="http://schemas.android.com/apk/res/android">
+    <translate
+        android:duration="500"
+        android:fromXDelta="100%p"
+        android:toXDelta="0" />
+</set> 
+

+ 8 - 0
login/src/main/res/anim/leftout.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<set xmlns:android="http://schemas.android.com/apk/res/android">
+    <translate
+        android:duration="500"
+        android:fromXDelta="0"
+        android:toXDelta="-100%p" />
+</set> 
+

+ 34 - 9
personalcenter/src/main/java/com/yingyang/personalcenter/help/HelpActivity.kt

@@ -1,9 +1,14 @@
 package com.yingyang.personalcenter.help
 
+import android.annotation.SuppressLint
+import android.view.MotionEvent
+import android.view.View
 import com.alibaba.android.arouter.facade.annotation.Route
+import com.yingyang.personalcenter.R
 import com.yingyang.personalcenter.databinding.ActivityHelpBinding
 import com.yingyangfly.baselib.base.BaseActivity
-import com.yingyangfly.baselib.ext.setOnSingleClickListener
+import com.yingyangfly.baselib.ext.getEndAnimation
+import com.yingyangfly.baselib.ext.getScaleAnimation
 import com.yingyangfly.baselib.router.RouterUrlCommon
 import com.yingyangfly.baselib.utils.JumpUtil
 
@@ -11,24 +16,44 @@ import com.yingyangfly.baselib.utils.JumpUtil
  * 帮助中心
  */
 @Route(path = RouterUrlCommon.help)
-class HelpActivity : BaseActivity<ActivityHelpBinding>() {
+class HelpActivity : BaseActivity<ActivityHelpBinding>(),
+    View.OnTouchListener {
 
     override fun initViews() {
 
     }
 
+    @SuppressLint("ClickableViewAccessibility")
     override fun initListener() {
-        binding {
-            //返回首页
-            layoutHome.setOnSingleClickListener {
-                JumpUtil.jumpActivity(RouterUrlCommon.home, mContext)
-                finish()
-            }
-        }
+        binding.layoutHome.setOnTouchListener(this)
     }
 
     override fun initData() {
 
     }
 
+    @SuppressLint("ClickableViewAccessibility")
+    override fun onTouch(v: View, event: MotionEvent): Boolean {
+        when (event.action) {
+            MotionEvent.ACTION_DOWN -> {
+                if (v.id == R.id.layoutHome) {
+                    v.startAnimation(getScaleAnimation())
+                }
+            }
+            MotionEvent.ACTION_UP -> {
+                v.startAnimation(getEndAnimation())
+                if (v.id == R.id.layoutHome) {
+                    JumpUtil.jumpActivity(RouterUrlCommon.home, mContext)
+                    finish()
+                }
+            }
+            MotionEvent.ACTION_CANCEL -> {
+                if (v.id == R.id.layoutHome) {
+                    v.startAnimation(getEndAnimation())
+                }
+            }
+        }
+        return true
+    }
+
 }

+ 62 - 23
personalcenter/src/main/java/com/yingyang/personalcenter/personalcenter/PersonalCenterActivity.kt

@@ -1,12 +1,16 @@
 package com.yingyang.personalcenter.personalcenter
 
-import android.util.Log
+import android.annotation.SuppressLint
+import android.view.MotionEvent
+import android.view.View
 import com.alibaba.android.arouter.facade.annotation.Route
 import com.google.android.flexbox.FlexDirection
 import com.google.android.flexbox.FlexboxLayoutManager
+import com.yingyang.personalcenter.R
 import com.yingyang.personalcenter.adapter.DiagnosisAdapter
 import com.yingyang.personalcenter.databinding.ActivityPersonalCenterBinding
-import com.yingyangfly.baselib.ext.setOnSingleClickListener
+import com.yingyangfly.baselib.ext.getEndAnimation
+import com.yingyangfly.baselib.ext.getScaleAnimation
 import com.yingyangfly.baselib.ext.toast
 import com.yingyangfly.baselib.mvvm.BaseMVVMActivity
 import com.yingyangfly.baselib.router.RouterUrlCommon
@@ -17,7 +21,8 @@ import com.yingyangfly.baselib.utils.JumpUtil
  */
 @Route(path = RouterUrlCommon.personalCenter)
 class PersonalCenterActivity :
-    BaseMVVMActivity<ActivityPersonalCenterBinding, PersonalCenterViewModel>() {
+    BaseMVVMActivity<ActivityPersonalCenterBinding, PersonalCenterViewModel>(),
+    View.OnTouchListener {
 
     /**
      * 诊断
@@ -34,30 +39,19 @@ class PersonalCenterActivity :
         }
     }
 
+    @SuppressLint("ClickableViewAccessibility")
     override fun initListener() {
         binding {
             //返回首页
-            layoutHome.setOnSingleClickListener {
-                JumpUtil.jumpActivity(RouterUrlCommon.home, mContext)
-                finish()
-            }
+            layoutHome.setOnTouchListener(this@PersonalCenterActivity)
             //用户服务协议
-            tvServiceAgreement.setOnSingleClickListener {
-                "该功能正在开发中,敬请期待".toast()
-            }
+            tvServiceAgreement.setOnTouchListener(this@PersonalCenterActivity)
             //隐私保护政策
-            tvPrivacyPolicy.setOnSingleClickListener {
-                "该功能正在开发中,敬请期待".toast()
-            }
+            tvPrivacyPolicy.setOnTouchListener(this@PersonalCenterActivity)
             //设备租赁及服务
-            tvEquipmentServices.setOnSingleClickListener {
-//                JumpUtil.jumpActivity(RouterUrlCommon.equipmentServices, mContext)
-                "该功能正在开发中,敬请期待".toast()
-            }
+            tvEquipmentServices.setOnTouchListener(this@PersonalCenterActivity)
             //设置
-            settingLayout.setOnSingleClickListener {
-                JumpUtil.jumpActivity(RouterUrlCommon.setting, mContext)
-            }
+            settingLayout.setOnTouchListener(this@PersonalCenterActivity)
         }
     }
 
@@ -69,13 +63,58 @@ class PersonalCenterActivity :
             if (it != null) {
                 binding.data = it
                 if (it.diagnoseResult.isNullOrEmpty().not()) {
-                    it.diagnoseResult.forEach {
-                        Log.e("wpp", "-------------------->"+it)
-                    }
                     diagnosisList.addAll(it.diagnoseResult)
                 }
             }
             diagnosisAdapter.setData(diagnosisList)
         })
     }
+
+    @SuppressLint("ClickableViewAccessibility")
+    override fun onTouch(v: View, event: MotionEvent): Boolean {
+        when (event.action) {
+            MotionEvent.ACTION_DOWN -> {
+                if (v.id == R.id.layoutHome || v.id == R.id.tvServiceAgreement || v.id == R.id.tvPrivacyPolicy ||
+                    v.id == R.id.tvEquipmentServices || v.id == R.id.settingLayout
+                ) {
+                    v.startAnimation(getScaleAnimation())
+                }
+            }
+            MotionEvent.ACTION_UP -> {
+                v.startAnimation(getEndAnimation())
+                when (v.id) {
+                    R.id.layoutHome -> {
+                        //返回首页
+                        JumpUtil.jumpActivity(RouterUrlCommon.home, mContext)
+                        finish()
+                    }
+                    R.id.tvServiceAgreement -> {
+                        //用户服务协议
+                        "该功能正在开发中,敬请期待".toast()
+                    }
+                    R.id.tvPrivacyPolicy -> {
+                        //隐私保护政策
+                        "该功能正在开发中,敬请期待".toast()
+                    }
+                    R.id.tvEquipmentServices -> {
+                        //设备租赁及服务
+                        //JumpUtil.jumpActivity(RouterUrlCommon.equipmentServices, mContext)
+                        "该功能正在开发中,敬请期待".toast()
+                    }
+                    R.id.settingLayout -> {
+                        //设置
+                        JumpUtil.jumpActivity(RouterUrlCommon.setting, mContext)
+                    }
+                }
+            }
+            MotionEvent.ACTION_CANCEL -> {
+                if (v.id == R.id.layoutHome || v.id == R.id.tvServiceAgreement || v.id == R.id.tvPrivacyPolicy ||
+                    v.id == R.id.tvEquipmentServices || v.id == R.id.settingLayout
+                ) {
+                    v.startAnimation(getEndAnimation())
+                }
+            }
+        }
+        return true
+    }
 }

+ 67 - 29
personalcenter/src/main/java/com/yingyang/personalcenter/setting/SettingActivity.kt

@@ -1,12 +1,16 @@
 package com.yingyang.personalcenter.setting
 
+import android.annotation.SuppressLint
 import android.content.Intent
 import android.provider.Settings
+import android.view.MotionEvent
+import android.view.View
 import com.alibaba.android.arouter.facade.annotation.Route
 import com.yingyang.personalcenter.R
 import com.yingyang.personalcenter.databinding.ActivitySettingBinding
 import com.yingyangfly.baselib.base.BaseActivity
-import com.yingyangfly.baselib.ext.setOnSingleClickListener
+import com.yingyangfly.baselib.ext.getEndAnimation
+import com.yingyangfly.baselib.ext.getScaleAnimation
 import com.yingyangfly.baselib.router.RouterUrlCommon
 import com.yingyangfly.baselib.utils.AppUtil
 import com.yingyangfly.baselib.utils.JumpUtil
@@ -15,47 +19,27 @@ import com.yingyangfly.baselib.utils.JumpUtil
  * 设置页面
  */
 @Route(path = RouterUrlCommon.setting)
-class SettingActivity : BaseActivity<ActivitySettingBinding>() {
+class SettingActivity : BaseActivity<ActivitySettingBinding>(), View.OnTouchListener {
 
     override fun initViews() {
 
     }
 
+    @SuppressLint("ClickableViewAccessibility")
     override fun initListener() {
         binding {
             //返回上一页
-            backLayout.setOnSingleClickListener {
-                finish()
-            }
-
+            backLayout.setOnTouchListener(this@SettingActivity)
             //WLAN
-            wifiLayout.setOnSingleClickListener {
-                val intent = Intent(Settings.ACTION_WIFI_SETTINGS)
-                startActivity(intent)
-            }
-
+            wifiLayout.setOnTouchListener(this@SettingActivity)
             //移动网络
-            mobileNetworkLayout.setOnSingleClickListener {
-                val intent = Intent(Settings.ACTION_DATA_ROAMING_SETTINGS)
-                startActivity(intent)
-            }
-
+            mobileNetworkLayout.setOnTouchListener(this@SettingActivity)
             //显示与亮度
-            brightnessLayout.setOnSingleClickListener {
-                val intent = Intent(Settings.ACTION_DISPLAY_SETTINGS)
-                startActivity(intent)
-            }
-
+            brightnessLayout.setOnTouchListener(this@SettingActivity)
             //声音
-            soundLayout.setOnSingleClickListener {
-                val intent = Intent(Settings.ACTION_SOUND_SETTINGS)
-                startActivity(intent)
-            }
-
+            soundLayout.setOnTouchListener(this@SettingActivity)
             //版本记录
-            versionLayout.setOnSingleClickListener {
-                JumpUtil.jumpActivity(RouterUrlCommon.versionRecord, mContext)
-            }
+            versionLayout.setOnTouchListener(this@SettingActivity)
         }
     }
 
@@ -66,4 +50,58 @@ class SettingActivity : BaseActivity<ActivitySettingBinding>() {
         }
     }
 
+    @SuppressLint("ClickableViewAccessibility")
+    override fun onTouch(v: View, event: MotionEvent): Boolean {
+        when (event.action) {
+            MotionEvent.ACTION_DOWN -> {
+                if (v.id == R.id.backLayout || v.id == R.id.wifiLayout || v.id == R.id.mobileNetworkLayout ||
+                    v.id == R.id.brightnessLayout || v.id == R.id.soundLayout || v.id == R.id.versionLayout
+                ) {
+                    v.startAnimation(getScaleAnimation())
+                }
+            }
+            MotionEvent.ACTION_UP -> {
+                v.startAnimation(getEndAnimation())
+                when (v.id) {
+                    R.id.backLayout -> {
+                        //返回上一页
+                        finish()
+                    }
+                    R.id.wifiLayout -> {
+                        //WLAN
+                        val intent = Intent(Settings.ACTION_WIFI_SETTINGS)
+                        startActivity(intent)
+                    }
+                    R.id.mobileNetworkLayout -> {
+                        //移动网络
+                        val intent = Intent(Settings.ACTION_DATA_ROAMING_SETTINGS)
+                        startActivity(intent)
+                    }
+                    R.id.brightnessLayout -> {
+                        //显示与亮度
+                        val intent = Intent(Settings.ACTION_DISPLAY_SETTINGS)
+                        startActivity(intent)
+                    }
+                    R.id.soundLayout -> {
+                        //声音
+                        val intent = Intent(Settings.ACTION_SOUND_SETTINGS)
+                        startActivity(intent)
+                    }
+                    R.id.versionLayout -> {
+                        //版本记录
+                        JumpUtil.jumpActivity(RouterUrlCommon.versionRecord, mContext)
+                    }
+                }
+            }
+            MotionEvent.ACTION_CANCEL -> {
+                if (v.id == R.id.backLayout || v.id == R.id.wifiLayout || v.id == R.id.mobileNetworkLayout ||
+                    v.id == R.id.brightnessLayout || v.id == R.id.soundLayout || v.id == R.id.versionLayout
+                ) {
+                    v.startAnimation(getEndAnimation())
+                }
+            }
+        }
+        return true
+    }
+
 }

+ 32 - 10
personalcenter/src/main/java/com/yingyang/personalcenter/version/VersionRecordActivity.kt

@@ -1,11 +1,13 @@
 package com.yingyang.personalcenter.version
 
+import android.annotation.SuppressLint
+import android.view.MotionEvent
+import android.view.View
 import com.alibaba.android.arouter.facade.annotation.Route
+import com.yingyang.personalcenter.R
 import com.yingyang.personalcenter.adapter.VersionAdater
 import com.yingyang.personalcenter.databinding.ActivityVersionRecordBinding
-import com.yingyangfly.baselib.ext.setOnSingleClickListener
-import com.yingyangfly.baselib.ext.show
-import com.yingyangfly.baselib.ext.toast
+import com.yingyangfly.baselib.ext.*
 import com.yingyangfly.baselib.mvvm.BaseMVVMActivity
 import com.yingyangfly.baselib.router.RouterUrlCommon
 
@@ -14,7 +16,7 @@ import com.yingyangfly.baselib.router.RouterUrlCommon
  */
 @Route(path = RouterUrlCommon.versionRecord)
 class VersionRecordActivity :
-    BaseMVVMActivity<ActivityVersionRecordBinding, VersionRecordViewModel>() {
+    BaseMVVMActivity<ActivityVersionRecordBinding, VersionRecordViewModel>(), View.OnTouchListener {
 
     private val versionAdater by lazy { VersionAdater() }
 
@@ -24,13 +26,9 @@ class VersionRecordActivity :
         }
     }
 
+    @SuppressLint("ClickableViewAccessibility")
     override fun initListener() {
-        binding {
-            //返回上一页
-            backLayout.setOnSingleClickListener {
-                finish()
-            }
-        }
+        binding.backLayout.setOnTouchListener(this@VersionRecordActivity)
     }
 
     override fun initData() {
@@ -44,4 +42,28 @@ class VersionRecordActivity :
         })
     }
 
+    @SuppressLint("ClickableViewAccessibility")
+    override fun onTouch(v: View, event: MotionEvent): Boolean {
+        when (event.action) {
+            MotionEvent.ACTION_DOWN -> {
+                if (v.id == R.id.backLayout) {
+                    v.startAnimation(getScaleAnimation())
+                }
+            }
+            MotionEvent.ACTION_UP -> {
+                v.startAnimation(getEndAnimation())
+                if (v.id == R.id.backLayout) {
+                    //返回上一页
+                    finish()
+                }
+            }
+            MotionEvent.ACTION_CANCEL -> {
+                if (v.id == R.id.backLayout) {
+                    v.startAnimation(getEndAnimation())
+                }
+            }
+        }
+        return true
+    }
+
 }

+ 33 - 5
push/src/main/java/com/yingyang/push/activity/MessgeListActivity.kt

@@ -1,13 +1,18 @@
 package com.yingyang.push.activity
 
+import android.annotation.SuppressLint
 import android.text.TextUtils
+import android.view.MotionEvent
+import android.view.View
 import com.alibaba.android.arouter.facade.annotation.Route
+import com.yingyang.push.R
 import com.yingyang.push.adapter.PushListAdapter
 import com.yingyang.push.adapter.PushTypeAdapter
 import com.yingyang.push.databinding.ActivityMessgeListBinding
 import com.yingyang.push.entity.PushMessageBean
 import com.yingyang.push.entity.PushMessageTypeBean
-import com.yingyangfly.baselib.ext.setOnSingleClickListener
+import com.yingyangfly.baselib.ext.getEndAnimation
+import com.yingyangfly.baselib.ext.getScaleAnimation
 import com.yingyangfly.baselib.ext.toast
 import com.yingyangfly.baselib.mvvm.BaseMVVMActivity
 import com.yingyangfly.baselib.router.RouterUrlCommon
@@ -17,7 +22,8 @@ import com.yingyangfly.baselib.utils.JumpUtil
  * 消息列表
  */
 @Route(path = RouterUrlCommon.messageList)
-class MessgeListActivity : BaseMVVMActivity<ActivityMessgeListBinding, PushViewModel>() {
+class MessgeListActivity : BaseMVVMActivity<ActivityMessgeListBinding, PushViewModel>(),
+    View.OnTouchListener {
 
     /**
      * 消息类型adapter
@@ -67,10 +73,9 @@ class MessgeListActivity : BaseMVVMActivity<ActivityMessgeListBinding, PushViewM
         }
     }
 
+    @SuppressLint("ClickableViewAccessibility")
     override fun initListener() {
-        binding.layoutHead.setOnSingleClickListener {
-            JumpUtil.jumpActivity(RouterUrlCommon.home, mContext)
-        }
+        binding.layoutHead.setOnTouchListener(this@MessgeListActivity)
     }
 
     override fun initData() {
@@ -133,4 +138,27 @@ class MessgeListActivity : BaseMVVMActivity<ActivityMessgeListBinding, PushViewM
         })
     }
 
+    @SuppressLint("ClickableViewAccessibility")
+    override fun onTouch(v: View, event: MotionEvent): Boolean {
+        when (event.action) {
+            MotionEvent.ACTION_DOWN -> {
+                if (v.id == R.id.layoutHead) {
+                    v.startAnimation(getScaleAnimation())
+                }
+            }
+            MotionEvent.ACTION_UP -> {
+                v.startAnimation(getEndAnimation())
+                if (v.id == R.id.layoutHead) {
+                    JumpUtil.jumpActivity(RouterUrlCommon.home, mContext)
+                }
+            }
+            MotionEvent.ACTION_CANCEL -> {
+                if (v.id == R.id.layoutHead) {
+                    v.startAnimation(getEndAnimation())
+                }
+            }
+        }
+        return true
+    }
+
 }

+ 33 - 5
workbenches/src/main/java/com/yingyang/workbenches/freetraining/FreeTrainActivity.kt

@@ -1,15 +1,20 @@
 package com.yingyang.workbenches.freetraining
 
+import android.annotation.SuppressLint
 import android.text.TextUtils
+import android.view.MotionEvent
+import android.view.View
 import androidx.recyclerview.widget.GridLayoutManager
 import androidx.recyclerview.widget.LinearLayoutManager
 import com.alibaba.android.arouter.facade.annotation.Route
+import com.yingyang.workbenches.R
 import com.yingyang.workbenches.adapter.FreeTrainAdapter
 import com.yingyang.workbenches.adapter.FreeTrainTypeAdapter
 import com.yingyang.workbenches.databinding.ActivityFreeTrainBinding
 import com.yingyang.workbenches.entity.Record
 import com.yingyang.workbenches.entity.TrainTypeBean
-import com.yingyangfly.baselib.ext.setOnSingleClickListener
+import com.yingyangfly.baselib.ext.getEndAnimation
+import com.yingyangfly.baselib.ext.getScaleAnimation
 import com.yingyangfly.baselib.ext.toast
 import com.yingyangfly.baselib.mvvm.BaseMVVMActivity
 import com.yingyangfly.baselib.router.RouterUrlCommon
@@ -20,7 +25,8 @@ import com.yingyangfly.baselib.utils.User
  * 畅玩蓝豚
  */
 @Route(path = RouterUrlCommon.freeTrain)
-class FreeTrainActivity : BaseMVVMActivity<ActivityFreeTrainBinding, FreeTrainViewModel>() {
+class FreeTrainActivity : BaseMVVMActivity<ActivityFreeTrainBinding, FreeTrainViewModel>(),
+    View.OnTouchListener {
 
     /**
      * 自由训练类型adapter
@@ -74,11 +80,10 @@ class FreeTrainActivity : BaseMVVMActivity<ActivityFreeTrainBinding, FreeTrainVi
         }
     }
 
+    @SuppressLint("ClickableViewAccessibility")
     override fun initListener() {
         binding {
-            layoutHead.setOnSingleClickListener {
-                JumpUtil.jumpActivity(RouterUrlCommon.home, mContext)
-            }
+            layoutHead.setOnTouchListener(this@FreeTrainActivity)
 
             freeTrainSwipe.setOnRefreshListener {
                 freeTrainListAdapter.showEmptyView = false
@@ -185,4 +190,27 @@ class FreeTrainActivity : BaseMVVMActivity<ActivityFreeTrainBinding, FreeTrainVi
         }
     }
 
+    @SuppressLint("ClickableViewAccessibility")
+    override fun onTouch(v: View, event: MotionEvent): Boolean {
+        when (event.action) {
+            MotionEvent.ACTION_DOWN -> {
+                if (v.id == R.id.layoutHead) {
+                    v.startAnimation(getScaleAnimation())
+                }
+            }
+            MotionEvent.ACTION_UP -> {
+                v.startAnimation(getEndAnimation())
+                if (v.id == R.id.layoutHead) {
+                    JumpUtil.jumpActivity(RouterUrlCommon.home, mContext)
+                }
+            }
+            MotionEvent.ACTION_CANCEL -> {
+                if (v.id == R.id.layoutHead) {
+                    v.startAnimation(getEndAnimation())
+                }
+            }
+        }
+        return true
+    }
+
 }

+ 32 - 7
workbenches/src/main/java/com/yingyang/workbenches/leisurebrain/LeisureBrainActivity.kt

@@ -1,5 +1,8 @@
 package com.yingyang.workbenches.leisurebrain
 
+import android.annotation.SuppressLint
+import android.view.MotionEvent
+import android.view.View
 import androidx.recyclerview.widget.GridLayoutManager
 import com.alibaba.android.arouter.facade.annotation.Route
 import com.alibaba.android.arouter.launcher.ARouter
@@ -9,8 +12,8 @@ import com.yingyang.workbenches.adapter.LeisureBrainTypeAdapter
 import com.yingyang.workbenches.databinding.ActivityLeisureBrainBinding
 import com.yingyang.workbenches.entity.LeisureBrainBean
 import com.yingyang.workbenches.entity.TrainTypeBean
-import com.yingyangfly.baselib.ext.setOnSingleClickListener
-import com.yingyangfly.baselib.ext.show
+import com.yingyangfly.baselib.ext.getEndAnimation
+import com.yingyangfly.baselib.ext.getScaleAnimation
 import com.yingyangfly.baselib.ext.toast
 import com.yingyangfly.baselib.mvvm.BaseMVVMActivity
 import com.yingyangfly.baselib.router.RouterUrlCommon
@@ -21,7 +24,7 @@ import com.yingyangfly.baselib.utils.JumpUtil
  */
 @Route(path = RouterUrlCommon.leisureBrain)
 class LeisureBrainActivity :
-    BaseMVVMActivity<ActivityLeisureBrainBinding, LeisureBrainViewModel>() {
+    BaseMVVMActivity<ActivityLeisureBrainBinding, LeisureBrainViewModel>(), View.OnTouchListener {
 
     /**
      * 休闲健脑类型adapter
@@ -74,10 +77,9 @@ class LeisureBrainActivity :
         }
     }
 
+    @SuppressLint("ClickableViewAccessibility")
     override fun initListener() {
-        binding.layoutHead.setOnSingleClickListener {
-            JumpUtil.jumpActivity(RouterUrlCommon.home, mContext)
-        }
+        binding.layoutHead.setOnTouchListener(this@LeisureBrainActivity)
     }
 
     override fun initData() {
@@ -127,8 +129,31 @@ class LeisureBrainActivity :
                 leisureBrainList.addAll(it)
                 gridLayoutManager?.spanCount = 4
             }
-            leisureBrainListAdapter.showEmptyView = leisureBrainList.isNullOrEmpty()
+            leisureBrainListAdapter.showEmptyView = leisureBrainList.isEmpty()
             leisureBrainListAdapter.setData(leisureBrainList)
         })
     }
+
+    @SuppressLint("ClickableViewAccessibility")
+    override fun onTouch(v: View, event: MotionEvent): Boolean {
+        when (event.action) {
+            MotionEvent.ACTION_DOWN -> {
+                if (v.id == R.id.layoutHead) {
+                    v.startAnimation(getScaleAnimation())
+                }
+            }
+            MotionEvent.ACTION_UP -> {
+                v.startAnimation(getEndAnimation())
+                if (v.id == R.id.layoutHead) {
+                    JumpUtil.jumpActivity(RouterUrlCommon.home, mContext)
+                }
+            }
+            MotionEvent.ACTION_CANCEL -> {
+                if (v.id == R.id.layoutHead) {
+                    v.startAnimation(getEndAnimation())
+                }
+            }
+        }
+        return true
+    }
 }

+ 33 - 8
workbenches/src/main/java/com/yingyang/workbenches/orderlist/OrderListActivity.kt

@@ -1,12 +1,14 @@
 package com.yingyang.workbenches.orderlist
 
+import android.annotation.SuppressLint
+import android.view.MotionEvent
+import android.view.View
 import com.alibaba.android.arouter.facade.annotation.Route
+import com.yingyang.workbenches.R
 import com.yingyang.workbenches.adapter.OrderListAdapter
 import com.yingyang.workbenches.databinding.ActivityOrderListBinding
 import com.yingyang.workbenches.entity.OrderBean
-import com.yingyangfly.baselib.ext.setOnSingleClickListener
-import com.yingyangfly.baselib.ext.show
-import com.yingyangfly.baselib.ext.toast
+import com.yingyangfly.baselib.ext.*
 import com.yingyangfly.baselib.mvvm.BaseMVVMActivity
 import com.yingyangfly.baselib.router.RouterUrlCommon
 
@@ -14,7 +16,8 @@ import com.yingyangfly.baselib.router.RouterUrlCommon
  * 订单记录
  */
 @Route(path = RouterUrlCommon.orderList)
-class OrderListActivity : BaseMVVMActivity<ActivityOrderListBinding, OrderListViewModel>() {
+class OrderListActivity : BaseMVVMActivity<ActivityOrderListBinding, OrderListViewModel>(),
+    View.OnTouchListener {
 
     private var orderListList = mutableListOf<OrderBean>()
     private val orderListAdapter by lazy { OrderListAdapter() }
@@ -25,10 +28,9 @@ class OrderListActivity : BaseMVVMActivity<ActivityOrderListBinding, OrderListVi
         }
     }
 
+    @SuppressLint("ClickableViewAccessibility")
     override fun initListener() {
-        binding.backLayout.setOnSingleClickListener {
-            finish()
-        }
+        binding.backLayout.setOnTouchListener(this@OrderListActivity)
     }
 
     override fun initData() {
@@ -40,9 +42,32 @@ class OrderListActivity : BaseMVVMActivity<ActivityOrderListBinding, OrderListVi
             if (it.isNullOrEmpty().not()) {
                 orderListList.addAll(it!!)
             }
-            orderListAdapter.showEmptyView = orderListList.isNullOrEmpty()
+            orderListAdapter.showEmptyView = orderListList.isEmpty()
             orderListAdapter.setData(orderListList)
         })
     }
 
+    @SuppressLint("ClickableViewAccessibility")
+    override fun onTouch(v: View, event: MotionEvent): Boolean {
+        when (event.action) {
+            MotionEvent.ACTION_DOWN -> {
+                if (v.id == R.id.backLayout) {
+                    v.startAnimation(getScaleAnimation())
+                }
+            }
+            MotionEvent.ACTION_UP -> {
+                v.startAnimation(getEndAnimation())
+                if (v.id == R.id.backLayout) {
+                    finish()
+                }
+            }
+            MotionEvent.ACTION_CANCEL -> {
+                if (v.id == R.id.backLayout) {
+                    v.startAnimation(getEndAnimation())
+                }
+            }
+        }
+        return true
+    }
+
 }

+ 41 - 10
workbenches/src/main/java/com/yingyang/workbenches/servicepackage/ServicePackageActivity.kt

@@ -1,14 +1,19 @@
 package com.yingyang.workbenches.servicepackage
 
+import android.annotation.SuppressLint
+import android.view.MotionEvent
+import android.view.View
 import androidx.recyclerview.widget.GridLayoutManager
 import com.alibaba.android.arouter.facade.annotation.Route
+import com.yingyang.workbenches.R
 import com.yingyang.workbenches.adapter.ServicePackageListAdapter
 import com.yingyang.workbenches.adapter.ServicePackageTypeAdapter
 import com.yingyang.workbenches.databinding.ActivityServicePackageBinding
 import com.yingyang.workbenches.dialog.PurchaseServicesDialog
 import com.yingyang.workbenches.entity.PackageInfoBean
 import com.yingyang.workbenches.entity.TrainTypeBean
-import com.yingyangfly.baselib.ext.setOnSingleClickListener
+import com.yingyangfly.baselib.ext.getEndAnimation
+import com.yingyangfly.baselib.ext.getScaleAnimation
 import com.yingyangfly.baselib.ext.toast
 import com.yingyangfly.baselib.mvvm.BaseMVVMActivity
 import com.yingyangfly.baselib.router.RouterUrlCommon
@@ -19,7 +24,8 @@ import com.yingyangfly.baselib.utils.JumpUtil
  */
 @Route(path = RouterUrlCommon.servicePackage)
 class ServicePackageActivity :
-    BaseMVVMActivity<ActivityServicePackageBinding, ServicePackageViewModel>() {
+    BaseMVVMActivity<ActivityServicePackageBinding, ServicePackageViewModel>(),
+    View.OnTouchListener {
 
     /**
      * 服务套餐类型
@@ -46,16 +52,13 @@ class ServicePackageActivity :
         }
     }
 
+    @SuppressLint("ClickableViewAccessibility")
     override fun initListener() {
         binding {
             //工作台
-            layoutHead.setOnSingleClickListener {
-                JumpUtil.jumpActivity(RouterUrlCommon.home, mContext)
-            }
+            layoutHead.setOnTouchListener(this@ServicePackageActivity)
             //订单记录
-            tvOrderList.setOnSingleClickListener {
-                JumpUtil.jumpActivity(RouterUrlCommon.orderList, mContext)
-            }
+            tvOrderList.setOnTouchListener(this@ServicePackageActivity)
         }
     }
 
@@ -76,11 +79,12 @@ class ServicePackageActivity :
                     servicePackageTypeList.addAll(it!!)
                 }
                 binding {
-                    rvType.layoutManager = GridLayoutManager(this@ServicePackageActivity, servicePackageTypeList.size)
+                    rvType.layoutManager =
+                        GridLayoutManager(this@ServicePackageActivity, servicePackageTypeList.size)
                     rvType.adapter = servicePackageTypeAdapter
                     servicePackageTypeAdapter.setServicePackageTypeSize(servicePackageTypeList.size)
                     servicePackageTypeAdapter.setData(servicePackageTypeList)
-                    if (servicePackageTypeList.isNullOrEmpty().not()) {
+                    if (servicePackageTypeList.isEmpty().not()) {
                         packageType = servicePackageTypeList[0].dictValue
                         getServicePackageList()
                     }
@@ -110,4 +114,31 @@ class ServicePackageActivity :
         })
     }
 
+    @SuppressLint("ClickableViewAccessibility")
+    override fun onTouch(v: View, event: MotionEvent): Boolean {
+        when (event.action) {
+            MotionEvent.ACTION_DOWN -> {
+                if (v.id == R.id.layoutHead || v.id == R.id.tvOrderList) {
+                    v.startAnimation(getScaleAnimation())
+                }
+            }
+            MotionEvent.ACTION_UP -> {
+                v.startAnimation(getEndAnimation())
+                if (v.id == R.id.layoutHead) {
+                    //工作台
+                    JumpUtil.jumpActivity(RouterUrlCommon.home, mContext)
+                } else if (v.id == R.id.tvOrderList) {
+                    //订单记录
+                    JumpUtil.jumpActivity(RouterUrlCommon.orderList, mContext)
+                }
+            }
+            MotionEvent.ACTION_CANCEL -> {
+                if (v.id == R.id.layoutHead || v.id == R.id.tvOrderList) {
+                    v.startAnimation(getEndAnimation())
+                }
+            }
+        }
+        return true
+    }
+
 }

+ 33 - 5
workbenches/src/main/java/com/yingyang/workbenches/traincontentdetails/TrainContentDetailsActivity.kt

@@ -1,11 +1,16 @@
 package com.yingyang.workbenches.traincontentdetails
 
+import android.annotation.SuppressLint
 import android.os.Bundle
+import android.view.MotionEvent
+import android.view.View
 import com.alibaba.android.arouter.facade.annotation.Route
+import com.yingyang.workbenches.R
 import com.yingyang.workbenches.adapter.TrainContentDetailsAdapter
 import com.yingyang.workbenches.databinding.ActivityTrainContentDetailsBinding
 import com.yingyang.workbenches.entity.TrainContentDetailsBean
-import com.yingyangfly.baselib.ext.setOnSingleClickListener
+import com.yingyangfly.baselib.ext.getEndAnimation
+import com.yingyangfly.baselib.ext.getScaleAnimation
 import com.yingyangfly.baselib.ext.toast
 import com.yingyangfly.baselib.mvvm.BaseMVVMActivity
 import com.yingyangfly.baselib.router.RouterUrlCommon
@@ -15,7 +20,8 @@ import com.yingyangfly.baselib.router.RouterUrlCommon
  */
 @Route(path = RouterUrlCommon.trainContentDetails)
 class TrainContentDetailsActivity :
-    BaseMVVMActivity<ActivityTrainContentDetailsBinding, TrainContentDetailsViewModel>() {
+    BaseMVVMActivity<ActivityTrainContentDetailsBinding, TrainContentDetailsViewModel>(),
+    View.OnTouchListener {
 
     private var taskId = ""
 
@@ -33,10 +39,9 @@ class TrainContentDetailsActivity :
         }
     }
 
+    @SuppressLint("ClickableViewAccessibility")
     override fun initListener() {
-        binding.backLayout.setOnSingleClickListener {
-            finish()
-        }
+        binding.backLayout.setOnTouchListener(this)
     }
 
     override fun initData() {
@@ -52,5 +57,28 @@ class TrainContentDetailsActivity :
         })
     }
 
+    @SuppressLint("ClickableViewAccessibility")
+    override fun onTouch(v: View, event: MotionEvent): Boolean {
+        when (event.action) {
+            MotionEvent.ACTION_DOWN -> {
+                if (v.id == R.id.backLayout) {
+                    v.startAnimation(getScaleAnimation())
+                }
+            }
+            MotionEvent.ACTION_UP -> {
+                v.startAnimation(getEndAnimation())
+                if (v.id == R.id.backLayout) {
+                    finish()
+                }
+            }
+            MotionEvent.ACTION_CANCEL -> {
+                if (v.id == R.id.backLayout) {
+                    v.startAnimation(getEndAnimation())
+                }
+            }
+        }
+        return true
+    }
+
 
 }

+ 34 - 8
workbenches/src/main/java/com/yingyang/workbenches/traindata/TrainDataActivity.kt

@@ -1,5 +1,8 @@
 package com.yingyang.workbenches.traindata
 
+import android.annotation.SuppressLint
+import android.view.MotionEvent
+import android.view.View
 import androidx.fragment.app.Fragment
 import com.alibaba.android.arouter.facade.annotation.Route
 import com.yingyang.workbenches.R
@@ -10,18 +13,18 @@ import com.yingyang.workbenches.datamonitor.DataMonitorFragment
 import com.yingyang.workbenches.traincontent.TrainContentFragment
 import com.yingyang.workbenches.trainreport.TrainReportFragment
 import com.yingyangfly.baselib.base.BaseFragmentActivity
-import com.yingyangfly.baselib.ext.setOnSingleClickListener
+import com.yingyangfly.baselib.ext.getEndAnimation
+import com.yingyangfly.baselib.ext.getScaleAnimation
 import com.yingyangfly.baselib.router.RouterUrlCommon
 import com.yingyangfly.baselib.utils.JumpUtil
 import com.yingyangfly.baselib.utils.RxBusCodes
 import gorden.rxbus2.RxBus
 
-
 /**
  * 训练数据
  */
 @Route(path = RouterUrlCommon.trainData)
-class TrainDataActivity : BaseFragmentActivity<ActivityTrainDataBinding>() {
+class TrainDataActivity : BaseFragmentActivity<ActivityTrainDataBinding>(), View.OnTouchListener {
 
     private var tabFragments = mutableListOf<Fragment>()
 
@@ -31,7 +34,8 @@ class TrainDataActivity : BaseFragmentActivity<ActivityTrainDataBinding>() {
         tabFragments.add(BrainAbilityFragment())
         tabFragments.add(TrainContentFragment())
         tabFragments.add(TrainReportFragment())
-        val tabAdapter = FragmentTabAdapter(this, tabFragments, R.id.layoutOperate, binding.radioOperate)
+        val tabAdapter =
+            FragmentTabAdapter(this, tabFragments, R.id.layoutOperate, binding.radioOperate)
         tabAdapter.onRgsExtraCheckedChangedListener =
             FragmentTabAdapter.OnRgsExtraCheckedChangedListener { checkedId, index ->
                 when (index) {
@@ -54,12 +58,10 @@ class TrainDataActivity : BaseFragmentActivity<ActivityTrainDataBinding>() {
             }
     }
 
+    @SuppressLint("ClickableViewAccessibility")
     override fun initListener() {
         binding {
-            layoutHead.setOnSingleClickListener {
-                JumpUtil.jumpActivity(RouterUrlCommon.home, mContext)
-                finish()
-            }
+            layoutHead.setOnTouchListener(this@TrainDataActivity)
         }
     }
 
@@ -67,4 +69,28 @@ class TrainDataActivity : BaseFragmentActivity<ActivityTrainDataBinding>() {
 
     }
 
+    @SuppressLint("ClickableViewAccessibility")
+    override fun onTouch(v: View, event: MotionEvent): Boolean {
+        when (event.action) {
+            MotionEvent.ACTION_DOWN -> {
+                if (v.id == R.id.layoutHead) {
+                    v.startAnimation(getScaleAnimation())
+                }
+            }
+            MotionEvent.ACTION_UP -> {
+                v.startAnimation(getEndAnimation())
+                if (v.id == R.id.layoutHead) {
+                    JumpUtil.jumpActivity(RouterUrlCommon.home, mContext)
+                    finish()
+                }
+            }
+            MotionEvent.ACTION_CANCEL -> {
+                if (v.id == R.id.layoutHead) {
+                    v.startAnimation(getEndAnimation())
+                }
+            }
+        }
+        return true
+    }
+
 }