android - 展开标题时如何更改展开标题颜色?

标签 android ios flutter dart expansion

我是flutter的初学者,我要在扩展时更改扩展标题颜色,默认值为蓝色,现在我要在扩展时扩展我的扩展标题颜色时更改我的代码,请检查它仅更改标题颜色,谁可以在这里帮助我? `

 `Padding(
                        padding: EdgeInsets.only(left: 30),
                        child: ExpansionTile(
    
                            children: <Widget>[
                              Text(
                                  '
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sollicitudin nulla risus, vel molestie quam mattis vitae. Quisque in neque in libero hendrerit ultricies a vel purus. Ut iaculis hendrerit nibh, nec pulvinar quam condimentum in. Fusce mollis elit vel lectus venenatis, sagittis sollicitudin lorem tristique. Quisque mattis vel dolor eget dictum. Integer facilisis tortor non lectus ullamcorpe'.',style: TextStyle(
                                  
                              fontSize: 14,  
                            fontFamily: 'Avenir LT 55 Roman',
                    
                                  ),)
                            ],
                            title: Row(
                              children: <Widget>[
                                Image.asset(
                                  'images/online.png',
                                ),
                                GestureDetector(
                                  onTap: () {
                                    Navigator.push(
                                      context,
                                      MaterialPageRoute(
                                          builder: (context) => Online()),
                                    );
                                  },
                                  child: Text(
    
                                    'Online Giving',
                                    style: TextStyle(
    
    
                                      fontSize: 20,
                                        fontFamily: 'TT NORMS',
                                      fontWeight: FontWeight.bold,
    
    
                                    ),
    
    
                                  ),
    
                                )
    
                              ],
    
    
                            )),
    
                      ),

最佳答案

要解决您的问题,您需要了解statefulWidget和StatelessWidget的用法。
当您构建的窗口小部件具有本地更改(例如他自己的文本颜色... ext)时,您需要使用StatefulWidget类
如果您的构建窗口小部件没有本地更改(您自己进行更改),则需要一个StatelessWidget类。
因此,在您的代码中,您有一个简单的小部件树,由以下元素组成:Scaffold -> ListView -> [Tile1,Tile2... TileN]
脚手架,ListView不需要本地更改,因此我们将它们设置为StatelessWidget。

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: ListView(
        children: [
          // each tile need her own state management since it depends on a setstate method
          CustomExpensionTile(),
          CustomExpensionTile(),
          CustomExpensionTile(),
        ],
      ),
    );
  }
}
但是列表块需要局部更改,如示例中的文本颜色,但扩展时只希望其中之一可以更改。因此,将它们放入单独的小部件中。
  @override
  _CustomExpensionTileState createState() => _CustomExpensionTileState();
}

class _CustomExpensionTileState extends State<CustomExpensionTile> {
  bool _isExpanded;
  @override
  Widget build(BuildContext context) {
    return ExpansionTile(
      backgroundColor: Colors.transparent,
      title: Text(
        "test",
        style: TextStyle(
          color: _isExpanded ? Colors.red : Colors.black,
        ),
      ),
      onExpansionChanged: (value) {
        _isExpanded = value;
        // whene setState methode is called the widget build function will be replayed with the new changes that we've done
        setState(() {});
      },
    );
  }
}
然后我们在setState事件上调用ExpansionChanges进行更改。
有关更多信息,请继续https://flutter.dev/

关于android - 展开标题时如何更改展开标题颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62831637/

相关文章:

android - 如何将子菜单添加到底部导航 View

android - 应用程序未在模拟器中显示

ios - 如何通过 iOS 中的 json 链接打开在模拟器或设备中可用但在应用商店中不可用的应用程序?

ios - 内存在 iOS 模拟器中释放,但在设备 (ipad) 上未释放

objective-c - 显示删除按钮时调整 UITableViewCell 内容的大小

flutter - Flutter FCM token 作为全局变量

flutter - 如何追踪 flutter 库 audo_recorder 和 stereo 之间的干扰

java - 语言切换,当用户选择特定语言形式的选项菜单时。它应该保持当前的本地状态,直到用户再次更改它

android - 找不到资源样式/LaunchTheme

firebase - AndroidX 迁移后 Firestore 损坏