java - ExpandableListView 对于列表中的最后一项表现异常
问题描述
我在 Android 导航抽屉中使用 ExpandableListsViews 而不是菜单。OnExpandlistner 我正在更改背景颜色。前两项表现正常,并且它们的背景颜色已更改。但是最后一项是相反的。我已经尝试了一切,我已经调试了代码。在最后一项上,设置的背景颜色代码正在运行,但没有更改。下次我单击该项目时,它会更改颜色。之后,如果我单击其他列表项。最后一个项目的颜色也会改变。
simpleExpandableListView.setOnGroupCollapseListener(new ExpandableListView.OnGroupCollapseListener() {
@Override
public void onGroupCollapse(int i) {
if(i == 0){
View view = getGroupView(simpleExpandableListView,0);
view.setBackgroundColor(Color.parseColor("#282828"));
}
if(i == 1){
View view = getGroupView(simpleExpandableListView,1);
view.setBackgroundColor(Color.parseColor("#282828"));
}
if(i == 2){
View view = getGroupView(simpleExpandableListView,2);
view.setBackgroundColor(Color.parseColor("#282828"));
}
}
});
simpleExpandableListView.setOnGroupExpandListener(new ExpandableListView.OnGroupExpandListener() {
@Override
public void onGroupExpand(int i) {
if(i == 0){
View view = getGroupView(simpleExpandableListView,0);
view.setBackgroundColor(Color.parseColor("#616262"));
}
if(i == 1){
View view = getGroupView(simpleExpandableListView,1);
view.setBackgroundColor(Color.parseColor("#616262"));
}
if(i == 2){
View view = getGroupView(simpleExpandableListView,2);
view.setBackgroundColor(Color.parseColor("#616262"));
}
}
});
我什至得到了每个项目的尊重意见。但仍然。这是我尝试过的另一个逻辑。
simpleExpandableListView.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() {
@Override
public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) {
//get the group header
GroupInfo headerInfo = deptList.get(groupPosition);
Log.d("GroupPosition", "onGroupClick: " + groupPosition);
if(parent.isGroupExpanded(groupPosition)){
v.setBackgroundColor(getResources().getColor(R.color.colorMenuBackground));
}
if(!parent.isGroupExpanded(groupPosition)){
v.setBackgroundColor(getResources().getColor(R.color.colorPrimary));
}
//display it or do something with it
/*Toast.makeText(getBaseContext(), " Header is :: " + headerInfo.getName(),
Toast.LENGTH_LONG).show();*/
return false;
}
});
但仍然得到相同的结果。如果有人能指出我正确的方向,并告诉我我做错了什么,将不胜感激。谢谢
解决方案
问题解决了!这都可以通过使用 expandableListView xml 属性来解决。"android:listSelector="任何你想要的颜色""
推荐阅读
- appkit - 如何以编程方式使用`NSControl.ControlSize.mini`制作`NSPopUpButton`?
- javascript - 在 jquery 数据表过滤器列上设置默认值并在页面加载时进行初始过滤
- javascript - 如何从 IDE 而不是内联编辑器编写实现代码?
- javascript - JS - 搜索栏不返回任何内容
- javascript - axios 超时重试
- python - 无法替换 Pandas 中的值
- c# - C# Visual Studio 2019 大元素中的“System.OutOfMemoryException”
- c++ - 控制台属性的 C++ 奇怪行为
- javascript - jQuery each() not working correctly with wrapAll() and wrap()
- postgresql - 使用分隔符为 ',' 的 csv 数组文字从 postgresql 复制