Browse Source

1.设置edittext获取焦点不弹软键盘

王鹏鹏 2 years ago
parent
commit
6c4c0bbe93
1 changed files with 41 additions and 21 deletions
  1. 41 21
      mmse/src/main/java/com/yingyangfly/mmse/fragment/YearFragment.kt

+ 41 - 21
mmse/src/main/java/com/yingyangfly/mmse/fragment/YearFragment.kt

@@ -1,6 +1,9 @@
 package com.yingyangfly.mmse.fragment
 
+import android.annotation.SuppressLint
 import android.os.Build
+import android.view.MotionEvent
+import android.view.View
 import androidx.annotation.RequiresApi
 import androidx.core.os.bundleOf
 import androidx.navigation.Navigation
@@ -9,16 +12,14 @@ import com.yingyang.mmse.R
 import com.yingyang.mmse.databinding.FragmentYearBinding
 import com.yingyangfly.baselib.base.BaseFragment
 import com.yingyangfly.baselib.db.QuestionsBean
-import com.yingyangfly.baselib.ext.hideSoftKeyboard
-import com.yingyangfly.baselib.ext.setOnSingleClickListener
-import com.yingyangfly.baselib.ext.toast
+import com.yingyangfly.baselib.ext.*
 import com.yingyangfly.mmse.adapter.NumberAdapter
 
 
 /**
  * 数字输入类
  */
-class YearFragment : BaseFragment<FragmentYearBinding>() {
+class YearFragment : BaseFragment<FragmentYearBinding>(), View.OnTouchListener {
 
     private var toastInfo = ""
     private val numberList = mutableListOf<String>()
@@ -74,25 +75,10 @@ class YearFragment : BaseFragment<FragmentYearBinding>() {
         }
     }
 
+    @SuppressLint("ClickableViewAccessibility")
     override fun initListener() {
         binding {
-            btnNext.setOnSingleClickListener { view ->
-                if (binding.editYear.text.toString().trim().isNullOrEmpty()) {
-                    val str = "请输入$toastInfo"
-                    str.toast()
-                } else {
-                    if (question != null) {
-                        question!!.inputString = binding.editYear.text.toString().trim()
-                        question!!.reviewId = question!!.id
-                        question!!.reviewAnswer = binding.editYear.text.toString().trim()
-                        question!!.correct = ""
-                        dao?.update(question!!)
-                    }
-                    val bundle = bundleOf("questionId" to 2)
-                    val controller = Navigation.findNavController(view)
-                    controller.navigate(R.id.action_yearFragment_to_selectedItemFragment, bundle)
-                }
-            }
+            btnNext.setOnTouchListener(this@YearFragment)
         }
     }
 
@@ -126,4 +112,38 @@ class YearFragment : BaseFragment<FragmentYearBinding>() {
             }
         }
     }
+
+    override fun onTouch(v: View, event: MotionEvent): Boolean {
+        when (event.action) {
+            MotionEvent.ACTION_DOWN -> {
+                if (v.id == R.id.btnNext) {
+                    v.startAnimation(getScaleAnimation())
+                }
+            }
+            MotionEvent.ACTION_UP -> {
+                v.startAnimation(getEndAnimation())
+                if (binding.editYear.text.toString().trim().isNullOrEmpty()) {
+                    val str = "请输入$toastInfo"
+                    str.toast()
+                } else {
+                    if (question != null) {
+                        question!!.inputString = binding.editYear.text.toString().trim()
+                        question!!.reviewId = question!!.id
+                        question!!.reviewAnswer = binding.editYear.text.toString().trim()
+                        question!!.correct = ""
+                        dao?.update(question!!)
+                    }
+                    val bundle = bundleOf("questionId" to 2)
+                    val controller = Navigation.findNavController(v)
+                    controller.navigate(R.id.action_yearFragment_to_selectedItemFragment, bundle)
+                }
+            }
+            MotionEvent.ACTION_CANCEL -> {
+                if (v.id == R.id.btnNext) {
+                    v.startAnimation(getEndAnimation())
+                }
+            }
+        }
+        return true
+    }
 }