禁用点击和灰色Listview项目[Android]

时间:2016-07-28 10:53:53

标签: android android-layout listview

我需要在特定情况下禁用listview中的某些项目。已禁用表示它们已灰显,不再可单击。需要停用的排名存储在名为ArrayList的{​​{1}}。

我已成功完成此任务的一部分:我已通过覆盖适配器的方法positions_to_disable

禁用了这些项目
boolean isEnabled(int position);

然而,我还没有办法让它们变灰。如果我尝试使用覆盖适配器的方法 @Override public boolean isEnabled(int position) { for (int j = 0; j < FromWhereActivity.positions_to_disable.size(); j++) { if (position == FromWhereActivity.positions_to_disable.get(j)) { return false; } } return super.isEnabled(position); } 做同样的事情,滚动时会让更多项目变灰,可能是因为此方法仅计算可见项目而不是计算适配器中的所有项目。 我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

您只需将列表项的背景设置为StateListDrawable,其具有不同的禁用颜色:

module ModuleA {
    export var num = 4;
}

module ModuleB {
    export function log() {
        console.log(ModuleA.num);
    } 
}

请参阅a macro that expands