2016-06-12 3 views
0

У меня есть следующие методы расширенного представления списка. Теперь, когда щелкнут родительский элемент, listView свернут. То, что я хочу сделать, - это установить список, когда он будет нажат (не только группа). Хотя я искал, я не могу понять, какой метод мне нужно переопределить/реализовать. Благодаря!Закрыть расширяемый ListView для дочернего элемента

expListView.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() { 

    @Override 
    public boolean onGroupClick(ExpandableListView parent, View v, 
int groupPosition, long id) { 
parent.collapseGroup(groupPosition); 
return false; 
    } 
}); 
expListView.setOnGroupExpandListener(new ExpandableListView.OnGroupExpandListener() { 

    @Override 
    public void onGroupExpand(int groupPosition) { 

    } 
}); 
expListView.setOnGroupCollapseListener(new ExpandableListView.OnGroupCollapseListener() { 

    @Override 
    public void onGroupCollapse(int groupPosition) { 

    } 
}); 

expListView.setOnChildClickListener(new ExpandableListView.OnChildClickListener() { 

    @Override 
    public boolean onChildClick(ExpandableListView parent, View v, 
int groupPosition, int childPosition, long id) { 
return false; 
    } 
}); 

ответ

3

Все, что вам нужно сделать, это добавить следующую строку кода:

@Override 
     public boolean onGroupClick(ExpandableListView parent, View v, 
            int groupPosition, long id) { 
      parent.collapseGroup(groupPosition); 
      return false; 
     } 
+0

Большое спасибо, что отлично поработало! – user6456773

0

Его Рабочая Пожалуйста, см Снимок экрана enter image description here

expListView.setOnGroupExpandListener(new OnGroupExpandListener() { 

      // TODO Colapse Here Using this... in android 
      int previousGroup = -1; 
      boolean flag = false; 

      @Override 
      public void onGroupExpand(int groupPosition) { 

       Log.e("keshav", "onGroupClick is -> " + groupPosition); 

       Toast.makeText(getApplicationContext(), 
         listDataHeader.get(groupPosition) + " Expanded", 
         Toast.LENGTH_SHORT).show(); 

       if (groupPosition != previousGroup && flag) { 
        expListView.collapseGroup(previousGroup); 
       } 
       previousGroup = groupPosition; 

       flag = true; 

      } 
     }); 

Смотрите здесь ExpandableLists in Android, I want to allow only one parent list to expand at a time

0

Использование этот код рухнет ExpandableListView на ребенка click

@Override 
     public boolean onChildClick(ExpandableListView parent, View v, 
            int groupPosition, int childPosition, long id) { 

      parent.collapseGroup(groupPosition); 
      return false; 
     } 
Смежные вопросы