ExpandableListView对于列表中的最后一项表现异常

问题描述 投票:2回答:1

我在Android Nav Drawer中使用ExpandableListsViews而不是菜单。和OnExpandlistner我正在改变背景颜色。前两个项目正常运行,并且它们的bachground颜色已更改。但最后一项是相反的。我已经尝试了一切,我调试了代码。在最后一项上,设置的背景颜色代码是runnig但不会更改。下次单击该项目时,它会更改颜色。如果我点击其他列表项后。最后一项颜色也会改变。

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

但仍然得到相同的结果。如果有人能指出我正确的方向,告诉我我做错了什么,我将不胜感激。谢谢

java android navigation-drawer expandablelistview
1个回答
1
投票

问题解决了!这可以通过使用expandableListView xml属性来解决。 “android:listSelector =”你想要的任何颜色“”

© www.soinside.com 2019 - 2024. All rights reserved.