代码之家  ›  专栏  ›  技术社区  ›  Hashir Saeed

ExpandableListView对列表中的最后一项的行为异常

  •  2
  • Hashir Saeed  · 技术社区  · 8 年前

    我使用Android导航抽屉中的可扩展列表视图,而不是菜单视图。 和一个xpandlistner我正在改变背景色。前两个项目的行为正常,其巴赫金颜色改变。但最后一项是相反的,我已经尝试了所有的方法,我已经调试了代码。在最后一个项目上,设置的背景色代码是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;
            }
        });
    

    但还是得到了同样的结果。 如果有人能指引我正确的方向,告诉我我做错了什么,我将不胜感激。 谢谢你

    1 回复  |  直到 8 年前
        1
  •  1
  •   Hashir Saeed    8 年前

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

    推荐文章