我的复选框中有一个 ImageSpan 和 ClickableSpan,用于在复选框文本末尾显示图标并处理单击它。但是单击它会更改复选框的选中状态,这是不需要的。
当用户单击 ClickableSpan 时,如何防止更改复选框状态?
只是我需要一些等价的cancelPendingInputEvents()
API 16+ 的方法。另外,我不想将复选框与复选框和文本视图分开。
您是否使用类似于中概述的解决方案https://stackoverflow.com/a/47166879/172690 https://stackoverflow.com/a/47166879/172690?如果是这样,我发现了以下内容onClick
实现功能:
@Override
public void onClick(View widget) {
// Prevent CheckBox state from being toggled when link is clicked
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
widget.cancelPendingInputEvents();
} else {
if (widget instanceof CheckBox) {
CheckBox checkbox = (CheckBox) widget;
boolean state = checkBox.isChecked();
checkBox.post(new Runnable() {
@Override public void run() {
checkBox.setChecked(state);
}
});
}
}
// Do action for link text...
}
本质上,状态是在处理点击期间保存的,然后发布以便可以恢复。正如您可以想象的那样,当按下可点击的跨度按钮时,复选框会闪烁并呈现动画。然而,即使是cancelPendingInputEvents
当触摸链接时,分支会闪烁复选框,所以我的猜测是,除了编写自己的复选框小部件之外,这是您可以做的最好的事情。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)