Как изменить значок стрелки в ExpansionPanelList

#flutter #dart

#flutter #dart

Вопрос:

Я новичок в Flutter, и в настоящее время я работаю над созданием ExpansionPanelList. Я пытаюсь заменить значок рядом с ExpansionPanel с морковки (^) на выпадающий значок. Кроме того, я бы хотел, чтобы стрелка выпадающего списка вращалась при расширении ExpansionPanel. Однако я не уверен, как это сделать.

Ниже показано, как я инициализирую свой ExpansionPanelList. Я попытался решить эту проблему, инициализировав стрелку, которую я хочу использовать в моем ListTitle (где я инициализирую заголовок). Однако значок отображается рядом со значком моркови, который использует ExpansionPanel.

Я очень новичок в Flutter (и вроде как новичок в Stack Overflow в целом), поэтому задержанное объяснение было бы очень полезно.

 ExpansionPanelList(
                    expansionCallback: (int index, bool isExpanded) {
                      setState(() {
                        _data[index].isExpanded = !isExpanded;
                      });
                    },
                    children: _data.map<ExpansionPanel>((Item item) {
                     // I believe this is where we want to edit the arrow.
                      return ExpansionPanel(
                        headerBuilder: (BuildContext context, bool isExpanded) {
                          
                          return ListTile(
                            title: Text("yoink"), //Text(item.headerValue),
                            trailing: Icon(Icons.arrow_drop_down), //solid arrow
                          );
                        },
                        body: ListTile(
                            title: Text(item.expandedValue),
                            subtitle: Text(
                                'To delete this panel, tap the trash can icon'),
                            trailing: Icon(Icons.delete),
                            onTap: () {
                              setState(() {
                                _data.removeWhere(
                                    (currentItem) => item == currentItem);
                              });
                            }),
                        isExpanded: item.isExpanded,
                      );
                    }).toList(),
                  ),
  

Вывод

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

Ответ №1:

Ответ заключался в том, чтобы вместо этого создать реализацию ListView. ExpansionPanels похожи на ListViews с ExpansionTiles, однако они более строгие, и вы не можете настраивать ExpansionPanels так же, как ExpansionTiles, которые можно использовать только в ListView.