Android - 灰显/更改所选项目之外的所有项目的alpha

时间:2014-11-30 17:32:21

标签: android listview

美好的一天。我有一个显示ListView的Android应用程序。单击任何行后,我希望所有其他行都显示为灰色。我正在使用自定义ListView和我自己的BaseAdapter,我知道我可以在getView函数上创建一个onclick函数。但是,这样做会使我基本活动中的onItemClick函数无效,这就是为什么我希望尽可能在我的基本活动中执行此操作。

以下是我制作onItemClick函数的方法:

resultListView.setOnItemClickListener(new OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> adapterView, View view,
            int position, long id) {
        // TODO Auto-generated method stub
        resultListView.smoothScrollToPositionFromTop(position, 0);
        resultListView.setClickable(false);
        resultListView.setScrollContainer(false);
        resultListView.setEnabled(false);

        };

    });
}

除了所选项目之外,有没有办法让所有其他项目变灰?即使改变alpha /降低它也会有所帮助。我想给用户一个印象,即其他列表项不可点击。我现在很难搞清楚它。非常感谢任何帮助,谢谢。

修改

我可以通过以下方式调整alpha:

resultListView.setAlpha((float) 0.5);

但是,它会影响整行,我无法调整所选行的alpha值。

1 个答案:

答案 0 :(得分:0)

创建用于保存变量的类。例如,将此类传递给适配器而不是字符串。在类中创建一个布尔变量isSelected。在onItemClick()中设置isSelected,并根据你的isSelected变量启用/禁用getView()中的视图。