我在android:checkableBehavior="single"
中使用group
,此组包含少量项目,这些项目代表内容过滤器,没有默认过滤器(意味着不一定要检查)项目,至少是我想要的,如果我点击过滤器并想要禁用它我可以再次点击它,我的期望是使用setChecked(false)
项目将取消选中。
然而,it looks like:
for checkableBehavior =" single" setChecked()将始终检查菜单 项目,即使参数是' false'因为谷歌的实施。
我明显的解决方案是添加一个no filter
项目,用户可以检查该项目以表明他们不想要过滤器,但是检查和取消选中相同的项目似乎更直观,还有另一种方式setChecked(false)
?
答案 0 :(得分:3)
谷歌在include <string>
std::string myString = "Something";
size_t stringLength = myString.size();
(从Nougat开始)的大脑死亡实施:
MenuItemImpl
请注意,@Override
public MenuItem setChecked(boolean checked) {
if ((mFlags & EXCLUSIVE) != 0) {
// Call the method on the Menu since it knows about the others in this
// exclusive checkable group
mMenu.setExclusiveItemChecked(this);
} else {
setCheckedInt(checked);
}
return this;
}
标志设置完全忽略checked
。