我有一个问题。
我实现了一个带有listView的导航抽屉,我希望禁用此列表视图的项目。我希望用户看到项目禁用,因为它采用不同的颜色,并且您无法单击它。 问题是,只有活动知道什么时候被禁用。
一个明显的按钮示例:
Button but =...
but.setEnables(false);
现在按钮会改变颜色,你无法点击它。
我想为listView的元素做同样的事情。 我试过这个:
nameListView.getChildAt(position).setEnabled(false);
但这不起作用。
我该怎么办?
感谢。
答案 0 :(得分:0)
使用适配器怎么样?像这样:
nameListView.getAdapter().getItem(position).setEnabled(false);
答案 1 :(得分:0)
我的解决方案:
在代表导航抽屉项目的类中,我添加了一个布尔属性(启用)
public class NavDrawerItem {
....
private boolean enable;
.....
public boolean isEnable() {
return enable;
}
public void setEnable(boolean enable) {
this.enable = enable;
}
}
在我的适配器中,覆盖te方法isEnable(position):
@Override
public boolean isEnabled(int position) {
return getItem(position).isEnable();
};
现在,在我的活动中,当导航抽屉打开时,执行以下方法:
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
NavDrawerItem itemToDisable = (NavDrawerItem) mDrawerList.getAdapter().getItem(0);
itemToDisable.setEnable(centroComercial!=null); //Condition to disable item
return super.onPrepareOptionsMenu(menu);
}
在此方法之前,系统" redrawer"导航抽屉,现在该项目不启用。 唯一不改变颜色的东西,更具可用性。