#flutter #android-studio #dart #flutter-dependencies
Вопрос:
Я создал несколько файлов dart из AdobeXD (applebutton.dart, background.dart, googlebutton.dart). Однако я не знаю, как вызвать эти файлы из основного файла.dart.
Я могу скопировать и вставить часть этих файлов, сгенерированных AbodeXD, в файл main.dart, но я считаю, что должен быть способ вызвать эти файлы, не делая main.dart больше.
Внутри класса MyApp> Виджет>> тело>>> дети, я вставил контейнер из background.dart, но я хочу вызвать виджет вместо его копирования.
(Я новичок в flutter, так что спасибо за ваш ответ).
Ответ №1:
Все эти страницы имеют основную функцию. Для Дарта это непонятно. Основная функция поиска файлов Dart для начала, вот почему вы должны использовать только одну основную функцию в своем основном файле.dart.
Чтобы использовать другие экраны в файле main.dart, используйте ключевое слово import в верхней части файлов main.dart и запишите путь к странице.
Экраны должны расширяться с помощью StatelessWidget или StatefulWidget. Вы не компилируете все свое приложение, когда хотите показать другую страницу, поэтому вам не нужно использовать функцию main() на каждой странице.
Ответ №2:
При использовании элементов из другого файла вы должны сначала импортировать их с помощью import
ключевого слова, например:
import 'Widgets/my_widget.dart'
;
другой способ импорта — вызвать полный путь к виджету:
import 'package:my_project/widgets/my_widget.dart'
;
большинство IDE предоставляют вам возможность автоматического импорта любых файлов, которые вы используете
Комментарии:
1. И как только он будет импортирован, как мне его использовать (например, класс и виджет на первом опубликованном изображении), извините? Спасибо.
2. ты должна кое-что сделать, чтобы файлы, прежде чем их можно использовать (и я думаю, что есть способ, чтобы задать adobeXD чтобы сделать это автоматически, но я не знаю, как) сначала удалите эти строки:
void main() {...}
переименуйте виджет, чтобы все, что вы хотите, где он говоритclass MyApp
, наконец, ваш виджет окружен MaterialApp и лески, MaterialApp означает, что виджет-это приложение, поэтому, если это кнопка, вы должны удалить его, и эшафот означает, что виджет представляет собой страницу в приложение, так что если вы сделали целую страницу, вы не должны удалить это, но если это, например, кнопку, также удалите его.3. Как я уже сказал, вероятно, есть способ для adobeXD сделать это автоматически, однако я им не пользуюсь, так что я бы не знал.
4. Спасибо!! Я 1) удалил основную часть в каждом файле, 2) изменил имя для каждого класса, 3) использовал runApp в файле main.dart для вызова каждого класса. Это сработало! Спасибо!!
Ответ №3:
Простым решением будет создание еще одного виджета только для экспорта и импорта только одного файла.
На этом изображении мне просто нужно импортировать widgets.dart
. Остальная часть файла будет импортирована туда.
виджеты.дротик
export 'widget.circleNeonBorder.dart';
export 'widget.rectNeonBorder.dart';
export 'widget.desktopWrapper.dart';
export 'widget.tabletWrapper.dart';
export 'widget.mobileWrapper.dart';
Существует Dart Barrel File Generator
расширение для пользователя Vs-кода. Вы также можете найти для Android-студию.