Flutter 扩展文件小部件时更改其标题文本的颜色
我正在使用扩展文件,并在处于折叠状态时覆盖默认文本颜色。我想在小部件展开时更改标题文本的颜色。我注意到,如果没有使用自定义文本颜色,默认行为是更改颜色,但是一旦使用自定义颜色,这将不再有效。这是我的密码Flutter 扩展文件小部件时更改其标题文本的颜色,flutter,Flutter,我正在使用扩展文件,并在处于折叠状态时覆盖默认文本颜色。我想在小部件展开时更改标题文本的颜色。我注意到,如果没有使用自定义文本颜色,默认行为是更改颜色,但是一旦使用自定义颜色,这将不再有效。这是我的密码 class TestScreen extends StatefulWidget { @override _TestScreenState createState() => _TestScreenState(); } class _TestScreenState extends S
class TestScreen extends StatefulWidget {
@override
_TestScreenState createState() => _TestScreenState();
}
class _TestScreenState extends State<TestScreen> {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Padding(
padding: const EdgeInsets.only(top: 100.0),
child: Card(
child: Center(
child: Column(
children: <Widget>[
ExpansionTile(
title: Text(
'Text 1',
style: TextStyle(
fontSize: 18,
fontWeight: FontWeight.bold,
color: Color.fromRGBO(112, 190, 115, 1),
),
),
children: <Widget>[Text('Text 2'), Text('Text 3')],
),
],
),
),
),
),
);
}
}
class TestScreen扩展StatefulWidget{
@凌驾
_TestScreenState createState();
}
类_TestScreenState扩展状态{
@凌驾
小部件构建(构建上下文){
返回脚手架(
主体:填充物(
填充:仅限常量边集(顶部:100.0),
孩子:卡片(
儿童:中心(
子:列(
儿童:[
扩展文件(
标题:正文(
“文本1”,
样式:TextStyle(
尺码:18,
fontWeight:fontWeight.bold,
颜色:颜色。来自RGBO(1121901151),
),
),
子项:[Text('Text 2')、Text('Text 3')],
),
],
),
),
),
),
);
}
}
您需要首先在build
方法之外声明颜色。然后使用expansiontile
的onExpansionChanged
事件更新它。像这样:
class TestScreen extends StatefulWidget {
@override
_TestScreenState createState() => _TestScreenState();
}
class _TestScreenState extends State<TestScreen> {
Color _textColor = Colors.green;
@override
Widget build(BuildContext context) {
return Scaffold(
body: Padding(
padding: const EdgeInsets.only(top: 100.0),
child: Card(
child: Center(
child: Column(
children: <Widget>[
ExpansionTile(
onExpansionChanged: (expanded) {
setState(() {
if (expanded) {
_textColor = Colors.blue;
} else {
_textColor = Colors.green;
}
});
},
title: Text(
'Text 1',
style: TextStyle(
fontSize: 18,
fontWeight: FontWeight.bold,
color: _textColor,
),
),
children: <Widget>[Text('Text 2'), Text('Text 3')],
),
],
),
),
),
),
);
}
}
class TestScreen扩展StatefulWidget{
@凌驾
_TestScreenState createState();
}
类_TestScreenState扩展状态{
颜色_textColor=Colors.green;
@凌驾
小部件构建(构建上下文){
返回脚手架(
主体:填充物(
填充:仅限常量边集(顶部:100.0),
孩子:卡片(
儿童:中心(
子:列(
儿童:[
扩展文件(
OneExpansionChanged:(已展开){
设置状态(){
如果(扩展){
_textColor=Colors.blue;
}否则{
_textColor=Colors.green;
}
});
},
标题:正文(
“文本1”,
样式:TextStyle(
尺码:18,
fontWeight:fontWeight.bold,
颜色:_textColor,
),
),
子项:[Text('Text 2')、Text('Text 3')],
),
],
),
),
),
),
);
}
}
工作正常!