Как отключить свертывание расширяемого списка?

#android #expandablelistview

#Android #расширяемый список

Вопрос:

Я хотел бы реализовать ExpandableListView который должен быть расширяемым только после того, как все значения были установлены в адаптере. Также я хотел бы иметь возможность отключить свертывание расширителя.

Могу ли я достичь этого в XML-макете Android?

Ответ №1:

Вы можете определить, OnGroupClickListener который возвращает true , примерно так:

 expandableList.setOnGroupClickListener(new OnGroupClickListener() {
  @Override
  public boolean onGroupClick(ExpandableListView parent, View v,
                              int groupPosition, long id) { 
    return true; // This way the expander cannot be collapsed
  }
});
  

Ответ №2:

Я не знаю, как это можно сделать из xml.

Вы могли бы добавить OnGroupClickListener в ExpandableListView и использовать его событие, если группа уже расширена:

 myExpandableListView.setOnGroupClickListener(new OnGroupClickListener()
{
    @Override
    public boolean onGroupClick(ExpandableListView parent, 
        View v, int groupPosition, long id)
    {
        return parent.isGroupExpanded(groupPosition);
    }
});
  

Комментарии:

1. Большое вам спасибо. Но я внес в него некоторые изменения, и это сработало, чтобы не собирать список

2. Большое вам спасибо. Но я внес в него некоторые изменения, и это сработало из-за того, что я не собирал список.setOnGroupCollapseListener(new OnGroupCollapseListener() { public void onGroupCollapse(int id) { // Автоматически сгенерированная заглушка метода TODO ExpandableListView expand=(ExpandableListView) findViewById(R.id.expandableListView1); развернуть. expandGroup(идентификатор); } });

3. я тебя очень благодарю. Но я внес в него некоторые изменения, и это сработало из-за того, что я не собирал список.setOnGroupCollapseListener(new OnGroupCollapseListener() { public void onGroupCollapse(int id) { // Автоматически сгенерированная заглушка метода TODO ExpandableListView expand=(ExpandableListView) findViewById(R.id.expandableListView1); развернуть. expandGroup(идентификатор); } });

4. Вы должны опубликовать свое решение здесь, и вы сможете принять его через 48 часов. Вы должны это сделать, чтобы закрыть этот вопрос. Пожалуйста, обратите внимание, однако, что с вашим решением список будет сворачиваться и сразу после этого расширять каждую группу, так что может быть много потерь. Используя событие click, вы предотвращаете свертывание списка.

5. Я знаю, что я предотвращаю событие click. Но мое требование заключается в таком способе. Мне приходится постоянно расширять свой расширяемый список. ИТАК, у меня есть событие предотвращения свертывания. Можете ли вы указать, как развернуть расширяемый список в самом начале.