在 Expandable ListView 中突出显示 child 视图

Highlight child view inside Expandable ListView

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

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;
        }
    });

但我的问题是,如果我在同一 parent 视图中选择另一个 child,则之前的选择不会被取消突出显示。

我该如何解决这个问题?

您可以采用以下方法:

1) 将最近点击的item的引用或位置保存为int或object。

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

int lastItem = 0;

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

3) 这将帮助您保存参考,并使处理上一个和当前项目变得容易。这只是我在处理此类案件时使用的一种方法。你必须使用这种方法。

希望对您有所帮助。