在Flutter中,ExpansionTile
是一个可展开的列表项,通常用于显示可以折叠的标题和相关内容。如果你想在展开时更改 ExpansionTile
的标题,可以通过监听 onChanged
回调来实现。
以下是一个示例代码,展示了如何在展开和折叠时更改 ExpansionTile
的标题:
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('ExpansionTile Example'),
),
body: Center(
child: ExpansionTileExample(),
),
),
);
}
}
class ExpansionTileExample extends StatefulWidget {
@override
_ExpansionTileExampleState createState() => _ExpansionTileExampleState();
}
class _ExpansionTileExampleState extends State<ExpansionTileExample> {
bool _isExpanded = false;
String _title = 'Click to expand';
@override
Widget build(BuildContext context) {
return ExpansionTile(
title: Text(_title),
onExpansionChanged: (bool expanded) {
setState(() {
_isExpanded = expanded;
_title = expanded ? 'Expanded' : 'Click to expand';
});
},
children: <Widget>[
ListTile(
title: Text('Item 1'),
),
ListTile(
title: Text('Item 2'),
),
],
);
}
}
StatefulWidget
和 State
来管理状态。ExpansionTile
的展开状态和标题。ExpansionTile
的展开状态发生变化时会被调用。我们在这个回调中更新 _isExpanded
和 _title
。这种技术在需要动态显示展开状态的场景中非常有用,例如:
通过这种方式,你可以在 ExpansionTile
展开和折叠时动态更改其标题,从而提升用户体验。
领取专属 10元无门槛券
手把手带您无忧上云