我正在使用GridView实现自定义日历。 对于这个日历,我有3种视图类型,{DAY,TITLE,BLANK}
有没有办法让GridView中的某些项目无法点击?
我要避免的是对于不可点击的项目的新闻状态动画。用户按下它们就可以了,我可以认识到它不是我的onItemClickListener()中的有效视图。这纯粹是出于用户界面的目的。
答案 0 :(得分:4)
我找到了解决方案。不知道我为什么不首先搜索ListViews。
您需要覆盖isEnabled()函数 返回false将使其无法点击。 True将保持可点击状态。
@Override
public boolean isEnabled(int position) {
switch(getItemViewType(position)) {
case CellTypes.BLANK:
case CellTypes.TITLE:
default :
return false;
case CellTypes.DAY:
return true;
}
}
答案 1 :(得分:0)
在GridView的适配器中,实现get()方法之一以返回对被单击对象的引用。我假设您的适配器包装了“日历”对象的列表。
在GridView的onItemClickListener中,在适配器上调用get(index)或get(id)以获取对被单击对象的引用。检查它的类型以查看它是否是您不希望被点击的类型,并在执行通常在单击可点击项目时调用的逻辑时返回。
答案 2 :(得分:-1)
在XML中:android:clickable =“false”,在代码中:setClickable(false);