#flutter
#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, я хочу удалить это и переместить такой список в другой файл и вызвать его
Ответ №1:
На мой взгляд, лучший способ — создать новый файл с именем 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
Существуют другие подходы, но я нахожу это лучше, потому что я точно знаю, в каком файле у меня есть список, чтобы я мог внести изменения позже, если потребуется.