gpt4 book ai didi

dart - ExpansionPanelList 既不展开也不折叠 ExpansionPanel

转载 作者:行者123 更新时间:2023-12-05 07:23:39 27 4
gpt4 key购买 nike

我在 Tab() 中使用 ExpansionPanel()ExpansionPanel() 正确显示。但是它的 isExpanded 属性永远不会改变(是的,我有一行应该改变它)使得它不可能折叠或展开 ExpansionPanel()

我尝试使用 Expansion Panel List in Flutter 的答案和 Can't create ExpansionPanelList with Items in Flutter但它们都不起作用。

我也试过关注Flutter ExpansionPanel Demo但没有用。

// ...

class _PlaceExpandedPanelItem {
_PlaceExpandedPanelItem({this.isExpanded, this.header, this.body, this.icon});

bool isExpanded;
final String header;
final Widget body;
final Icon icon;
}

class _HomePage extends State<HomePage> with SingleTickerProviderStateMixin{
int _selectedIndex = 0;

TabController _tabController;

List<_PlaceExpandedPanelItem> _placeExpandedPanelItems = <_PlaceExpandedPanelItem>[
_PlaceExpandedPanelItem(
isExpanded: true,
header: 'Header',
body: Column(
children: <Widget>[
Text('Body')
],
),
icon: null
),
_PlaceExpandedPanelItem(
isExpanded: false,
header: 'Header',
body: Text('Body'),
icon: null
),
];

List<Tab> _allTabs;

@override
void initState() {
super.initState();
_allTabs = <Tab>[
Tab(
child: Container(
child: ListView(
children: <Widget>[
new ExpansionPanelList(
expansionCallback: (int index, bool isExpanded) {
setState(() {
_placeExpandedPanelItems[index].isExpanded = !_placeExpandedPanelItems[index].isExpanded;
});
},
children: _placeExpandedPanelItems.map((_PlaceExpandedPanelItem _placeExpandedPanelItem){
return ExpansionPanel(
headerBuilder: (BuildContext context, bool isExpanded) {
return Text(_placeExpandedPanelItem.isExpanded.toString());
},
isExpanded: _placeExpandedPanelItem.isExpanded,
body: _placeExpandedPanelItem.body,
);
}).toList(),
)
],
),
margin: EdgeInsets.all(16.0),
)
),
Tab(
child: Text('Tab 2'),
),
Tab(
child: Text('Tab 3'),
),
];

_tabController = TabController(vsync: this, length: _allTabs.length);
}

// ...

我希望 ExpansionPanel()expansionCallback 被调用时折叠或展开,但它既没有折叠也没有展开。

最佳答案

initState() 上初始化小部件可能会导致在不等待 initState() 完成的情况下先调用 Widget build。如果小部件不需要在 initState() 上,最好将它们移动到 Widget build() 中。

关于dart - ExpansionPanelList 既不展开也不折叠 ExpansionPanel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55840667/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com