Closed dengit closed 8 years ago
Revision Number @be87be7 bug描述:
TagContainerLayout
子View
long click
bug分析:
setDragState()
mDragEnable
true
mTagViewState
ViewDragHelper.STATE_DRAGGING
runnable
STATE_IDLE
DragHelperCallBack.onViewDragStateChanged()
bug修复建议:
mTagViewState=ViewDragHelper.STATE_IDLE
ViewDragHelper.STATE_IDLE
setDragEnable()
@dengit 是的,那个方法没有啥用,是之前修点击事件和滑动冲突时遗留的,mTagViewState应该由DragHelperCallBack.onViewDragStateChanged()控制。已经把这个方法删除了。。分析的很棒!非常感谢!
Revision Number @be87be7 bug描述:
TagContainerLayout
同时设置为可拖动,可点击,长按后,在不先拖动子View
的前期下,长按子View
,子View
并不能响应long click
,子View
后,即可正常响应长按bug分析:
TagContainerLayout
时调用了setDragState()
setDragState()
中,当mDragEnable
设置为true
时(即可拖动),mTagViewState
被设置为-ViewDragHelper.STATE_DRAGGING
long click
的runnable
中,mTagViewState
需要等于STATE_IDLE
才能触发长按处理。所以在在不先拖动子View
的前期下long click
无响应mTagViewState
会被DragHelperCallBack.onViewDragStateChanged()
正常设置状态,所以才可响应long click
bug修复建议:
setDragState()
是否可删除?或者只是起到重置mTagViewState=ViewDragHelper.STATE_IDLE
作用,这样可修复setDragState()
目前两处被调用的上下文分析得出:TagContainerLayout
初始化时 :不调用setDragState()
,按mTagViewState
的初始值ViewDragHelper.STATE_IDLE
setDragEnable()
中:不调用setDragState()
,mTagViewState
的值完全由DragHelperCallBack.onViewDragStateChanged()
控制,这样比较清晰还望解惑