Как отменить выбор всех остальных дочерних видов, которые были выбраны? Я пытаюсь поддерживать только одного ребенка, выделенного в любой момент времени. В приведенном ниже коде я могу выделить ребенка, но любой другой ребенок, который я выбираю внутри этой группы, будет выделен. Кроме того, если я выберу один дочерний элемент и группу переключателей, будет выделен следующий дочерний элемент группы в той же позиции.ExpandableListView - Как выделить только один дочерний элемент группы?
//CHILD CLICK LISTENER
lstRoute.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {
@Override
public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
for(int i = 0; i < parent.getChildCount(); i++)
{
View child = parent.getChildAt(i);
if(child instanceof ViewGroup)
{
//DO NOTHING
}else
{
child.setBackgroundColor(Color.TRANSPARENT);
}
}
v.setBackgroundColor(Color.GREEN);
return true;
}
});
//GROUP EXPANDED
lstRoute.setOnGroupExpandListener(new ExpandableListView.OnGroupExpandListener() {
@Override
public void onGroupExpand(int groupPosition) {
//Only allow one group to be expanded at a time
if (lastExpandedPosition != -1 && groupPosition != lastExpandedPosition) {
lstRoute.collapseGroup(lastExpandedPosition);
}
lastExpandedPosition = groupPosition;
//Clear all selections
for(int i = 0; i < lstRoute.getChildCount(); i++)
{
View child = lstRoute.getChildAt(i);
if(child instanceof ViewGroup) {
child.setBackgroundColor(Color.argb(100,139,213,252)); //Light Blue
}else{
child.setBackgroundColor(Color.TRANSPARENT);
}
}
}
});
Спасибо за головы, он указал мне в правильном направлении, но вы можете привести пример того, как это будет работать на пользовательском представлении? – Dayan
https://github.com/F43nd1r/Multitool/blob/master/app/src/main/java/com/faendir/lightning_launcher/multitool/scriptmanager/ScriptListAdapter.java, в то время как это мультиселемент, который также позволяет выбирать группы, он должен показать принцип. (код от меня) – F43nd1r
Хороший материал, спасибо! – Dayan