我想在触摸第一个 TextView、第二个 TextView 时,拖动停止

问题描述

想要在触摸第一个 TextView 时第二个 TextView 拖动停止 它将与第二个 TextView 位于同一位置 请输入此问题的代码 对不起,因为我英语不好

class MainActivity : AppCompatActivity() {
val textView1: TextView by lazy { findViewById(R.id.textView1) }
val textView2: TextView by lazy { findViewById(R.id.textView2) }
var layout: ConstraintLayout? = null
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    layout = findViewById<View>(R.id.linear) as ConstraintLayout

    var otutch = object : View.OnTouchListener {
        var prevX = 0
        var prevY = 0
        override fun onTouch(v: View?,e: MotionEvent?): Boolean {
            val par = v?.layoutParams as ConstraintLayout.LayoutParams
            when (e?.action) {
                MotionEvent.ACTION_DOWN -> {
                    prevX = e.rawX.toInt()
                    prevY = e.rawY.toInt()
                    par.bottomMargin = -2 * v.height
                    par.rightMargin = -2 * v.width
                    v.layoutParams = par
                    return true
                }
                MotionEvent.ACTION_MOVE -> {
                    par.topMargin += e.rawY.toInt() - prevY
                    prevY = e.rawY.toInt()
                    par.leftMargin += e.rawX.toInt() - prevX
                    prevX = e.rawX.toInt()
                    v.layoutParams = par
                    return true
                }
                MotionEvent.ACTION_UP -> {
                    par.topMargin += e.rawY.toInt() - prevY
                    par.leftMargin += e.rawX.toInt() - prevX
                    v.layoutParams = par
                    return true
                }

            }
            return false
        }

    }
    textView1.setonTouchListener(otutch)
}

}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)