问题描述
对于一个爱好项目,我组装了一个GridView
,其中包含多个TextView
,每个包含一个字母。当用户在网格上滑动时,应使用字母来构造字符串,类似于滑动锁定模式或滑动键盘的行为:
我正在使用一个板载适配器,该板载适配器覆盖getView
和getItem
函数以动态生成TextView
,其中board
包裹了一个自动填充的2D数组加上字母:
override fun getItem(position: Int): String {
return board.getString(getCol(position),getRow(position))
}
override fun getView(position: Int,convertView: View?,parent: ViewGroup?): View {
val textView : SquaredTextView
textView.text = getItem(position)
textView.gravity = Gravity.CENTER
textView.textSize = 40f
return textView
}
我不想使用要求手动检查触摸事件的x坐标和y坐标是否在TextView
之类的this的边界框内的hacky方法。我可以使用哪种侦听器来跟踪多个TextView
上的滑动手势的触摸事件,并根据其内容构建字符串?
到目前为止,我尝试过的部分摘录:
我将TextView
细分为onTouchEvent
,将onHoverEvent
等细分为控制台,但是仅触发了触摸事件,并且只要滑动手势离开{{ 1}}开始于:
TextView
我还尝试将2020-10-29 19:06:22.059 5169-5169/com.example.myfirstapp D/Touch/L: MotionEvent { action=ACTION_DOWN,actionButton=0,id[0]=0,x[0]=103.94824,y[0]=116.98364,toolType[0]=TOOL_TYPE_FINGER,buttonState=0,classification=NONE,MetaState=0,flags=0x0,edgeFlags=0x0,pointerCount=1,historySize=0,eventTime=3726741,downTime=3726741,deviceid=0,source=0x1002,displayId=0 }
2020-10-29 19:06:22.119 5169-5169/com.example.myfirstapp D/Touch/L: MotionEvent { action=ACTION_MOVE,x[0]=94.778076,y[0]=137.42896,historySize=3,eventTime=3726841,displayId=0 }
2020-10-29 19:06:22.136 5169-5169/com.example.myfirstapp D/Touch/L: MotionEvent { action=ACTION_CANCEL,x[0]=918.45154,y[0]=162.47711,historySize=2,eventTime=3726858,displayId=0 }
添加到OnItemClickListener
,但从未被解雇。在GridView
上使用OnTouchListener
时,我找不到从触摸事件中找出各个GridView
的方法。
我也在互联网和StackOverflow上搜索了我的问题,但只是找到了诸如this或this之类的结果,但都没有一个可接受的答案。如果已经在某个地方回答了该问题,请随时向我指出。预先感谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)