Как вызвать несколько виджетов в файлах dart в другом файле dart в flutter?

#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-студию.

введите описание изображения здесь