首页 > 解决方案 > 从 Flutter 中的其他文件调用字符串列表

问题描述

我的文件中有一个字符串列表,实际上是在同一个文件中调用的,我想做的是移动这个字符串列表并从另一个文件中移动创建一个类,因为我需要从其他文件中调用这些字符串。什么是最好的选择?这是我的代码:

class CmCategoryList extends StatefulWidget {
  @override
  _CmCategoryListState createState() => _CmCategoryListState();
}

class _CmCategoryListState extends State<CmCategoryList> {
  List<String> names = <String>['Bellezza', 'Moda', 'Capelli', 'Estetica', 'Soldi', 'Finanza', 'Contabilità', 'Viaggi'];



  @override
  Widget build(BuildContext context) {
    return ListView.builder(
      scrollDirection: Axis.horizontal,
        padding: const EdgeInsets.all(8),
        itemCount: names.length,
        itemBuilder: (BuildContext context, int index) {
          return Container(
            width: 100,
            child: Card(
              margin: EdgeInsets.all(2),
              color: Colors.lightBlueAccent,

              child: Center(
                  child: Text('${names[index]}',
                    style: TextStyle(fontSize: 15,fontWeight: FontWeight.w400,color: Colors.white),
                  )
              ),
            ),
          );
        }
    );
  }
}

如您所见,在方法_CmCategoryListState 上调用了列表,我想删除它并将此类列表移动到另一个文件并调用它

标签: flutter

解决方案


我认为最好的方法是创建一个名为 resources.dart 的新文件

class Resources {
    static final List<String> NAMES = ['Bellezza', 'Moda', 'Capelli', 'Estetica', 'Soldi', 'Finanza', 'Contabilità', 'Viaggi'];
}

这是假设您的列表永远不会改变。

无论您想在哪里使用此列表,只需

import 'resources.dart'; // In the file you want

Resources.NAMES; // Like this, you can access the list

还有其他方法,但我发现这种方法更好,因为我确切地知道列表在哪个文件中,以便以后可以在需要时进行更改。


推荐阅读