我正在使用一个图库视图,其中对应于每个项目的视图是非平凡的,
包括文本和多个按钮.
当我单击拖动图库视图(某个位置不在其中一个按钮上)时,按钮的可绘制状态将更改为按下并显示为当前正在按下所有按钮.此外,对于所选状态也会发生相同的行为(例如,子TextView的所有文本都会更改颜色).
我试图阻止这种行为,并找到了android:duplicateParentState xml属性以及setDuplicateParentStateEnabled属性.这似乎应该完成我想要做的事情,但似乎没有任何效果.
有任何想法吗?
也许有点迟到,但最近自己遇到了这个问题我有一个修复.
dispatchSetSelected和dispatchSetPressed在这里并没有真正帮助,因为您实际需要覆盖的方法在Gallery中是私有的.
解决方案是在子视图周围添加一个额外的布局(我使用了LinearLayout的子类),它覆盖了setPressed(boolean)并简单地忽略它.这可以防止画廊强制对孩子施加按压状态,同时仍然允许直接激活这些孩子,而不是阻止事件向上传播.