我创建了一个带有expandableListView的导航抽屉。我有两个组。(Group-1,Group-2)例如,当我单击(group-1,index-2)时,其视图会突出显示,但(group-2,index-1)视图也会突出显示。这是我的孩子点击监听器:
// Listview on child click listener
expListView.setOnChildClickListener(new OnChildClickListener() {
@Override
public boolean onChildClick(ExpandableListView parent, View v,
int groupPosition, int childPosition, long id) {
Toast.makeText(
getApplicationContext(),
listDataHeader.get(groupPosition)
+ " : "
+ listDataChild.get(
listDataHeader.get(groupPosition)).get(
childPosition), Toast.LENGTH_SHORT)
.show();
int index = parent.getFlatListPosition(ExpandableListView.getPackedPositionForChild(groupPosition, childPosition));
parent.setItemChecked(index, true);
mDrawerLayout.closeDrawer(expListView);
return false;
}
});
我为什么要这样做?为什么两个组项都被突出显示?
答案 0 :(得分:0)
我解决了我的问题。我使用v.setSelected(true);
代替int index = parent.getFlatListPosition(ExpandableListView.getPackedPositionForChild(groupPosition, childPosition));
parent.setItemChecked(index, true);
现在它运行我想要的。单击(group-1,index-2)时,其视图将突出显示,并且(group-2,index-1)或其他组的索引不会更改。