突出显示可扩展ListView中的子视图

时间:2017-06-06 08:46:39

标签: android listview expandablelistview

当用户触摸项目时,我需要突出显示可扩展列表视图的子视图。我想要保留颜色,而不仅仅是提供视觉反馈。我能够通过以下方式实现这一目标:

expandablelistview_options.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {

        @Override
        public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) { 
            v.setBackgroundColor(Color.BLUE);
            return false;
        }
    });

但我的问题是,如果我在同一父视图中选择另一个孩子,则之前的选择不会突出显示。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您可以采取以下方法:

1)保存单击为int或object的最新项目的引用或位置。

2)然后你可以创建一个这样的函数,并在项目点击时调用它并传递位置:

int lastItem = 0;

public void highlight(int clickedItem){
clickedItem.setBackground(//highlight color);
lastItem.setBackground(//unhighlight color);
lastItem = clickedItem;
}

3)这将帮助您保存参考,并可以轻松处理最后和当前项目。这只是我处理这类案例时使用的一种方法。你必须使用这种方法。

希望这有帮助。