Вопросы по тегу: flutter

(137)

Как я могу размещать виджеты в зависимости от размера родителя?

Допустим, у вас есть родительский виджет, который может иметь переменный размер.Например:var container = new Container( height: 200.0, // Imagine this might change width: 200.0, // Imagine this might change // Imagine content in this container will // depend on the parent container child: new Container(), ); И, возможно, вы хотите, чтобы дочерний элемент родительского контейнера отображал что-то другое в зависимости от заданного размера.Подумайте о контрольных точках адаптивного дизайна: если ширина больше X, используйте этот макет, если ширина меньше X, используйте этот макет.Как лучше всего это сделать во Flutter?
D

Dvdwasibi

5 лет назад

Ответов: 6

Как убрать свечение прокрутки?

По умолчанию флаттер добавляет светящийся эффект на ListView/GridView/... к прокрутке на телефонах AndroidЯ хотел бы удалить этот эффект полностью или для одного конкретного прокручиваемого элемента. Я знаю, что могу изменить ScrollPhysics для переключения между Bounce/Clamp. Но на самом деле это не удаляет эффект свечения.Что я могу сделать?
R

Rémi Rousselet

4 года назад

Ответов: 11

Как использовать Expanded в SingleChildScrollView?

Как использовать Расширенный в SingleChildScrollView? У меня есть экран с Image.network, ListView.builder и Row (TextFormField и IconButton). Я завернул ListView в Expanded. Как обернуть этот столбец SingleChildScrollView? Мне нужно переместить экран, когда клавиатура открыта, чтобы увидеть, что я пишу. Когда я оборачиваю свой столбец, у меня возникает эта ошибка. тело: SingleChildScrollView( ребенок: столбец ( дети: [ Контейнер( ребенок: GestureDetector( ребенок: Изображение.сеть( postOne.imageUrl, подходит: BoxFit.fitWidth, высота: медиазапрос .of(контекст) .размер .ширина, ширина: медиазапрос .of(контекст) .размер .ширина, ), onLongPress: () {}, onDoubleTap: () {}, ), ), Расширенный( //высота: MediaQuery.of(context).size.width*0,33, ребенок: ListView.builder( itemCount: commentList.length, itemBuilder: (контекст, позиция) { вернуть детектор жестов ( onLongPress: () {}, ребенок: Карточка( ребенок: Заполнение( отступы: EdgeInsets.all(5.0), дочерний элемент: новый CheckboxListTile ( заголовок: новый текст (список комментариев .elementAt(позиция) .комментарий, стиль: TextStyle (размер шрифта: 18.0),), значение: значения [список комментариев .elementAt(позиция) .коммент], onChanged: (логическое значение) {}), ), ) ); } ), ), Контейнер( ребенок: Строка( crossAxisAlignment: CrossAxisAlignment.start, дети: [ новый гибкий( ребенок: Тема( данные: новые ThemeData( яркость: Яркость.свет, основной образец: Colors.grey, inputDecorationTheme: новый InputDecorationTheme( labelStyle: новый TextStyle( цвет: Colors.black45, размер шрифта: 18.0 ), ) ), ребенок: новая форма ( ключ: _formKey, дочерний элемент: новый TextFormField ( валидатор: (значение) { если (значение.isEmpty) { return 'Пожалуйста, введите комментарий'; } }, контроллер: commentController, украшение: новый InputDecoration( labelText: "Добавить комментарий", //hintText: 'Добавить комментарий' ), тип клавиатуры: TextInputType.text, ), ), ), ), новый контейнер( поле: EdgeInsets.only (слева: 10,0, сверху: 12,0), дочерний: новый IconButton( значок: новый значок (Icons.send, цвет: Colors.black,), onPressed: () {} ) ), ]), ), ], ), ), I/flutter ( 6816): ══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY ╞═════════════════════════════════════════════════════════ I/flutter ( 6816): The following assertion was thrown during performLayout(): I/flutter ( 6816): RenderFlex children have non-zero flex but incoming height constraints are unbounded. I/flutter ( 6816): When a column is in a parent that does not provide a finite height constraint, for example if it is I/flutter ( 6816): in a vertical scrollable, it will try to shrink-wrap its children along the vertical axis. Setting a I/flutter ( 6816): flex on a child (e.g. using Expanded) indicates that the child is to expand to fill the remaining I/flutter ( 6816): space in the vertical direction. I/flutter ( 6816): These two directives are mutually exclusive. If a parent is to shrink-wrap its child, the child I/flutter ( 6816): cannot simultaneously expand to fit its parent. I/flutter ( 6816): Consider setting mainAxisSize to MainAxisSize.min and using FlexFit.loose fits for the flexible I/flutter ( 6816): children (using Flexible rather than Expanded). This will allow the flexible children to size I/flutter ( 6816): themselves to less than the infinite remaining space they would otherwise be forced to take, and I/flutter ( 6816): then will cause the RenderFlex to shrink-wrap the children rather than expanding to fit the maximum I/flutter ( 6816): constraints provided by the parent. I/flutter ( 6816): The affected RenderFlex is: I/flutter ( 6816): RenderFlex#9f534 relayoutBoundary=up11 NEEDS-LAYOUT NEEDS-PAINT I/flutter ( 6816): The creator information is set to: I/flutter ( 6816): Column ← _SingleChildViewport ← IgnorePointer-[GlobalKey#3670d] ← Semantics ← Listener ← I/flutter ( 6816): _GestureSemantics ← RawGestureDetector-[LabeledGlobalKey#4878e] ← I/flutter ( 6816): Listener ← _ScrollableScope ← _ScrollSemantics-[GlobalKey#c5885] ← RepaintBoundary ← CustomPaint ← I/flutter ( 6816): ⋯ I/flutter ( 6816): The nearest ancestor providing an unbounded width constraint is: I/flutter ( 6816): _RenderSingleChildViewport#155d8 relayoutBoundary=up10 NEEDS-LAYOUT NEEDS-PAINT I/flutter ( 6816): creator: _SingleChildViewport ← IgnorePointer-[GlobalKey#3670d] ← Semantics ← Listener ← I/flutter ( 6816): _GestureSemantics ← RawGestureDetector-[LabeledGlobalKey#4878e] ← I/flutter ( 6816): Listener ← _ScrollableScope ← _ScrollSemantics-[GlobalKey#c5885] ← RepaintBoundary ← CustomPaint ← I/flutter ( 6816): RepaintBoundary ← ⋯ I/flutter ( 6816): parentData: (can use size) I/flutter ( 6816): constraints: BoxConstraints(0.0
F

Filip

3 года назад

Ответов: 8

Разработка для устройств iOS в среде Windows с помощью Flutter

Я новичок во Flutter, просто интересно, возможно ли это.Я пытался создать демонстрационный код с помощью Intellij с заданной инструкцией (https://flutter.io/setup/). Он хорошо работает на устройстве Android, но не может найти возможность скомпилировать и запустить его на моем устройстве iOS.
Y

YYY

4 года назад

Ответов: 6

Как настроить устройства для Visual Studio Code для эмулятора Flutter

Я хотел бы использовать Visual Studio Code в качестве редактора для разработки Flutter, но я не знаю, как запустить эмулятор. Я установил Visual Studio Code на Ubuntu 17.10 (Artful Aardvark).Я следовал первой половине инструкций, изложенных на странице Flutter: Начало работы (Создание нового приложения). Затем я столкнулся с проблемой во втором тайме: Запустить приложение Убедитесь, что целевое устройство выбрано в правом нижнем углу VS Code Нажмите кнопку F5 на клавиатуре или вызовите Debug>Start Debugging Дождитесь запуска приложения Если все работает, после сборки приложения вы должны увидеть стартовое приложение на своем устройстве или симуляторе: Проблема в том, что в правом нижнем углу стоит надпись «Нет устройств».Как подключить устройство? Я нигде не могу найти инструкции.
C

Charles Thomas Ingles

4 года назад

Ответов: 19

как добавить собственный цвет для флаттера?

Я хочу изменить цвет AppBar и использовать для него собственный цвет, я пробовал много вариантов, но ни один из них не работает. Я что-то упустил?import 'package:flutter/material.dart'; final ThemeData CompanyThemeData = new ThemeData( brightness: Brightness.light, primaryColorBrightness: Brightness.light, accentColor: CompanyColors.black[500], accentColorBrightness: Brightness.light ); class CompanyColors { CompanyColors._(); // this basically makes it so you can instantiate this class static const _blackPrimaryValue = 0xFF000000; static const MaterialColor black = const MaterialColor( _blackPrimaryValue, const { 50: const Color(0xFFe0e0e0), 100: const Color(0xFFb3b3b3), 200: const Color(0xFF808080), 300: const Color(0xFF4d4d4d), 400: const Color(0xFF262626), 500: const Color(_blackPrimaryValue), 600: const Color(0xFF000000), 700: const Color(0xFF000000), 800: const Color(0xFF000000), 900: const Color(0xFF000000), }, ); } , а затем я использовал его в main.dart какWidget build(BuildContext context) { return new MaterialApp( title: 'Flutter Demo', theme: new ThemeData( // This is the theme of your application. // // Try running your application with "flutter run". You'll see the // application has a blue toolbar. Then, without quitting the app, try // changing the primarySwatch below to Colors.green and then invoke // "hot reload" (press "r" in the console where you ran "flutter run", // or press Run > Flutter Hot Reload in IntelliJ). Notice that the // counter didn't reset back to zero; the application is not restarted. primarySwatch:Theme1.CompanyColors.black[50], ), home: new MyHomePage(title: 'Flutter Demo Home Page'), ); } но после выполнения пишет тип Color не относится к подтипу MaterialColor
K

Karishma

4 года назад

Ответов: 18

Как десериализовать список объектов из json во флаттере

Я использую пакет dart json_serializable для сериализации json. Глядя на документацию по флаттеру, он показывает, как десериализовать один объект следующим образом:Future fetchPost() async { final response = await http.get('https://jsonplaceholder.typicode.com/posts/1'); if (response.statusCode == 200) { // If the call to the server was successful, parse the JSON return Post.fromJson(json.decode(response.body)); } else { // If that call was not successful, throw an error. throw Exception('Failed to load post'); } } Однако я недостаточно знаком с dart, чтобы понять, как сделать то же самое для списка элементов вместо одного экземпляра.
G

Gainz

4 года назад

Ответов: 10

Как сделать AlertDialog во Flutter?

Я учусь создавать приложения во Flutter. Теперь я пришел к диалогам оповещения. Я делал их раньше в Android и iOS, но как мне сделать оповещение во Flutter?Вот некоторые связанные вопросы SO: Как стилизовать действия AlertDialog во Flutter добавление раскрывающегося меню в диалоговом окне предупреждения во флаттере Показывать диалоговое окно предупреждения на главном экране приложения автоматически загружаться как обновить диалог предупреждений во флаттере Диалоговое окно оповещения со скругленными углами в флаттере Я хотел бы сделать более общий канонический вопрос и ответ, поэтому мой ответ ниже.
S

Suragch

3 года назад

Ответов: 10

Новая версия застряла на «Готово к отправке на проверку» после того, как Play Store удалил приложение

Мое приложение было недавно удалено из магазина игр за отсутствие политики конфиденциальности внутри приложения. APK ТРЕБУЕТСЯ ДЕЙСТВУЮЩЕЙ ПОЛИТИКИ КОНФИДЕНЦИАЛЬНОСТИ​ Ваше приложение загружает информацию об основной учетной записи пользователя в ************ без публикации политики конфиденциальности как в специальном поле в консоли разработчика Play, так и в самом распространяемом приложении Play. Я исправил эту проблему в приложении и создал новый релиз, но по какой-то причине статус обзора застрял на Готово к отправке на рассмотрение. Как изменить это на На рассмотрении?
P

Pratik Baid

8 месяцев назад

Ответов: 1

Flutter: ListView отключает прокрутку с помощью сенсорного экрана

Можно ли разрешить прокрутку ListView только с помощью ScrollController, а не с помощью сенсорного экрана?
T

Tobias Gubo

4 года назад

Ответов: 6

Множественные конструкторы Dart

Неужели в dart невозможно создать несколько конструкторов для класса?в моем классе игроков, если у меня есть этот конструкторPlayer(String name, int color) { this._color = color; this._name = name; } Затем я пытаюсь добавить этот конструктор:Player(Player another) { this._color = another.getColor(); this._name = another.getName(); } Я получаю следующую ошибку: Конструктор по умолчанию уже определен. Я не ищу обходной путь, создавая один конструктор с кучей необязательных аргументов.Есть ли хороший способ решить эту проблему?
T

Tom Porat

4 года назад

Ответов: 8

Эквивалент RelativeLayout во Flutter

Есть ли способ реализовать что-то похожее на то, что RelativeLayout делает на Android?В частности, я ищу что-то похожее на centerInParent, layout_below:, layout_above:и alignParentLeftДополнительные сведения о RelativeLayout: https://developer.android.com/reference/android/widget/RelativeLayout.LayoutParams.htmlEDIT: вот пример макета, основанного на RelativeLayoutИтак, на изображении выше текст «Песни тофу» выровнен как centerInParent внутри RelativeLayout. В то время как другие 2 — это alignParentLeft и alignParentRightВ каждой ячейке, где находится значок огня, количество отметок «Нравится» внизу выровнено по центру значка пламени. Кроме того, верхний и нижний заголовок в каждой ячейке выравниваются по правому краю и по верхнему и нижнему краю изображения аватара соответственно.
u

user3217522

5 лет назад

Ответов: 4

Итерация по списку для рендеринга нескольких виджетов во Flutter?

У меня есть список строк, определенных следующим образом:var list = ["one", "two", "three", "four"]; Я хочу отображать значения на экране рядом друг с другом с помощью текстовых виджетов. Я попытался использовать следующий код, чтобы попытаться это сделать:for (var name in list) { return new Text(name); } Однако, когда я запускаю этот код, цикл for запускается только один раз, и отображается только один текстовый виджет, который говорит one (первый элемент в списке). Кроме того, когда я добавляю сообщение журнала в свой цикл for, оно также запускается один раз. Почему мой цикл for не основан на длине списка? Кажется, он запускается только один раз, а затем завершает работу.
r

rakeshdas

4 года назад

Ответов: 11

Как лучше всего сохранить все константы во Flutter?

Как лучше всего программировать создать постоянный класс во Flutter , чтобы сохранить все константы приложения для удобства. Я знаю, что в Dart есть ключевое слово const для создания постоянных полей, но можно ли использовать static вместе с const, или это создаст проблемы с памятью во время выполнения.*100006 *class Constants { static const String SUCCESS_MESSAGE=" You will be contacted by us very soon."; }
M

Manoj Perumarath

3 года назад

Ответов: 10

Как установить размер для CircularProgressIndicator?

Я пытаюсь сделать загрузочный экран для своего приложения, я использую виджет CircularProgressIndicator, но я хочу знать, есть ли способ сделать его больше по высоте и ширине, он слишком мал .Итак, кто-нибудь может помочь мне с этим?
J

Joseph Arriaza

3 года назад

Ответов: 10

Необработанное исключение: InternalLinkedHashMap<String, dynamic>не является подтипом типа List<dynamic>

Я пытаюсь получить ответ JSON от сервера и вывести его на консоль.Future login() async { var response = await http.get( Uri.encodeFull("https://etrans.herokuapp.com/test/2"), headers: {"Accept": "application/json"}); this.setState(() { data = json.decode(response.body); }); print(data[0].name); return "Success!"; } Необработанное исключение: тип '_InternalLinkedHashMap' не подтип типа 'List В чем может быть причина?
h

harunB10

3 года назад

Ответов: 12

Виджет материалов не найден

Я новичок во Flutter и пытался выполнить пример здесь. Я просто хочу использовать виджет TextField, чтобы получить пользовательский ввод. Проблема в том, что я получаю сообщение «Нет виджета материала». ошибка. Что я делаю неправильно ? Спасибо.Код:import 'package:flutter/material.dart'; void main() { runApp(new MyApp()); } class MyApp extends StatelessWidget { // This widget is the root of your application. @override Widget build(BuildContext context) { return new MaterialApp( title: 'Flutter Demo', home: new ExampleWidget(), ); } } /// Opens an [AlertDialog] showing what the user typed. class ExampleWidget extends StatefulWidget { ExampleWidget({Key key}) : super(key: key); @override _ExampleWidgetState createState() => new _ExampleWidgetState(); } /// State for [ExampleWidget] widgets. class _ExampleWidgetState extends State { final TextEditingController _controller = new TextEditingController(); @override Widget build(BuildContext context) { return new Column( mainAxisAlignment: MainAxisAlignment.center, children: [ new TextField( controller: _controller, decoration: new InputDecoration( hintText: 'Type something', ), ), new RaisedButton( onPressed: () { showDialog( context: context, child: new AlertDialog( title: new Text('What you typed'), content: new Text(_controller.text), ), ); }, child: new Text('DONE'), ), ], ); } } Это стек ошибок:Launching lib/main.dart on Android SDK built for x86 in debug mode... Built build/app/outputs/apk/app-debug.apk (21.5MB). I/flutter ( 5187): ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════ I/flutter ( 5187): The following assertion was thrown building InputDecorator(decoration: InputDecoration(hintText: I/flutter ( 5187): "Type something"); baseStyle: null; isFocused: false; isEmpty: true; dirty): I/flutter ( 5187): No Material widget found. I/flutter ( 5187): InputDecorator widgets require a Material widget ancestor. I/flutter ( 5187): In material design, most widgets are conceptually "printed" on a sheet of material. In Flutter's I/flutter ( 5187): material library, that material is represented by the Material widget. It is the Material widget I/flutter ( 5187): that renders ink splashes, for instance. Because of this, many material library widgets require that I/flutter ( 5187): there be a Material widget in the tree above them. I/flutter ( 5187): To introduce a Material widget, you can either directly include one, or use a widget that contains I/flutter ( 5187): Material itself, such as a Card, Dialog, Drawer, or Scaffold. I/flutter ( 5187): The specific widget that could not find a Material ancestor was: I/flutter ( 5187): InputDecorator(decoration: InputDecoration(hintText: "Type something"); baseStyle: null; I/flutter ( 5187): isFocused: false; isEmpty: true) I/flutter ( 5187): The ownership chain for the affected widget is: I/flutter ( 5187): InputDecorator ← AnimatedBuilder ← Listener ← _GestureSemantics ← RawGestureDetector ← I/flutter ( 5187): GestureDetector ← TextField ← Column ← ExampleWidget ← _ModalScopeStatus ← ⋯ I/flutter ( 5187): I/flutter ( 5187): When the exception was thrown, this was the stack: I/flutter ( 5187): #0 debugCheckHasMaterial. (package:flutter/src/material/debug.dart:26) I/flutter ( 5187): #2 debugCheckHasMaterial (package:flutter/src/material/debug.dart:23) I/flutter ( 5187): #3 InputDecorator.build (package:flutter/src/material/input_decorator.dart:334) ... I/flutter ( 5187): (elided one frame from class _AssertionError) I/flutter ( 5187): ════════════════════════════════════════════════════════════════════════════════════════════════════ I/flutter ( 5187): Another exception was thrown: No Material widget found.
u

user8005219

5 лет назад

Ответов: 5

Как скрыть строку состояния Android во Flutter

Как скрыть строку состояния Android в приложении Flutter?
P

Pieter

5 лет назад

Ответов: 15

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

Как использовать локальный пакет флаттера в другом приложении флаттера?Я создал пакет с помощью следующей команды:flutter create --template=package my_new_package , а затем в исходном коде моего приложения => main.dartimport "package:my_new_package/my_new_package.dart" // can not find the package
b

behzad besharati

4 года назад

Ответов: 4

как открыть определенный экран при нажатии на push-уведомление для флаттера

Я пытаюсь открыть определенный экран при нажатии на push-уведомление, и моя полезная нагрузка выглядит так: var payload = { notification: { title: notificationTitle, body: notificationMessage, click_action:"/screena",sound:"default", } }; Я получаю уведомление, но не могу поймать событие щелчка уведомления в флаттере, как его поймать. Я использую флаттер-сообщенияhttps://github.com/flutter/plugins/tree/master/packages/firebase_messagingи мой код службы push-сообщений firebase выглядит так pushMessagingService() async{ messagingreference.configure( onMessage: (Map message) { print("I am here in on message"); print(message); }, onLaunch: (Map message) { print("I am here onLaunch"); print(message); }, onResume: (Map message) { print("I am hereonResume"); print(message); }, ); messagingreference.requestNotificationPermissions( const IosNotificationSettings(sound: true, badge: true, alert: true)); messagingreference.onIosSettingsRegistered .listen((IosNotificationSettings settings) { print("Settings registered: $settings"); }); messagingreference.getToken().then((String token) async { print(token); }); } здесь я могу получить сообщение, как @xqwzts сказал в сообщении, когда мое приложение находится на переднем плане, но мой вопрос заключается в том, как перехватить событие щелчка из push-уведомления, поднятого на панели задач, и перейти к нужному экрану.
s

siva kumar

4 года назад

Ответов: 14

Что такое нулевая безопасность в Dart?

Я слышал о новой функции языка безопасности Dart null (NNBD), которая в настоящее время является «экспериментом, не допускающим обнуления». Предполагается ввести non-nullable по умолчанию.Спецификация функции может быть здесь и язык выпуск GitHub здесь.Как это работает и где можно попробовать?
c

creativecreatorormaybenot

2 года назад

Ответов: 2

Converting timestamp

I couldn't find a solution to this, I'm grabbing data from firebase and one of the fields is a timestamp which looks like this -> 1522129071. How to convert it to a date? Swift example (works) : func readTimestamp(timestamp: Int) { let now = Date() let dateFormatter = DateFormatter() let date = Date(timeIntervalSince1970: Double(timestamp)) let components = Set([.second, .minute, .hour, .day, .weekOfMonth]) let diff = Calendar.current.dateComponents(components, from: date, to: now) var timeText = "" dateFormatter.locale = .current dateFormatter.dateFormat = "HH:mm a" if diff.second! 0 && diff.minute! == 0 || diff.minute! > 0 && diff.hour! == 0 || diff.hour! > 0 && diff.day! == 0 { timeText = dateFormatter.string(from: date) } if diff.day! > 0 && diff.weekOfMonth! == 0 { timeText = (diff.day == 1) ? "\(diff.day!) DAY AGO" : "\(diff.day!) DAYS AGO" } if diff.weekOfMonth! > 0 { timeText = (diff.weekOfMonth == 1) ? "\(diff.weekOfMonth!) WEEK AGO" : "\(diff.weekOfMonth!) WEEKS AGO" } return timeText } My attempt at Dart: String readTimestamp(int timestamp) { var now = new DateTime.now(); var format = new DateFormat('HH:mm a'); var date = new DateTime.fromMicrosecondsSinceEpoch(timestamp); var diff = date.difference(now); var time = ''; if (diff.inSeconds 0 && diff.inMinutes == 0 || diff.inMinutes > 0 && diff.inHours == 0 || diff.inHours > 0 && diff.inDays == 0) { time = format.format(date); // Doesn't get called when it should be } else { time = diff.inDays.toString() + 'DAYS AGO'; // Gets call and it's wrong date } return time; } And it returns dates/times that are waaaaaaay off. UPDATE: String readTimestamp(int timestamp) { var now = new DateTime.now(); var format = new DateFormat('HH:mm a'); var date = new DateTime.fromMicrosecondsSinceEpoch(timestamp * 1000); var diff = date.difference(now); var time = ''; if (diff.inSeconds 0 && diff.inMinutes == 0 || diff.inMinutes > 0 && diff.inHours == 0 || diff.inHours > 0 && diff.inDays == 0) { time = format.format(date); } else { if (diff.inDays == 1) { time = diff.inDays.toString() + 'DAY AGO'; } else { time = diff.inDays.toString() + 'DAYS AGO'; } } return time; }
M

Mohamed Mohamed

4 года назад

Ответов: 20

How to dynamically resize text in Flutter?

I retrieve a piece of text from an API. I want to allot a set amount of space to it (say a max Container with width: 300.0 and height: 100.0). Sometimes, the piece of text fits in this Container with font size 30.0. In other times, it won't fit unless I set the text size to 24.0. Is there a way to dynamically resize text based on its parent container space? I've built a Container with a ConstrainedBox, which lets me define the max size of the text space. I've also wrapped my Text with a LayoutBuilder. I was hoping that I could check the height of the space of the text, and based on that, determine how to size the text. Like this: Container( child: ConstrainedBox( constraints: BoxConstraints( minWidth: 300.0, maxWidth: 300.0, minHeight: 30.0, maxHeight: 100.0, ), child: LayoutBuilder( builder: (BuildContext context, BoxConstraints constraints) { if (/* height is larger than 100.0? height is over the constraints? */) { return textWithSize24(); } return textWithSize30(); }), ), ), How can I determine the "height that the text would take up if it were size 30.0"? Maybe I'm approaching this the wrong way and I'm supposed to use maxLines to determine this instead? But how do we know that we've reached more than maxLines? The other way to do it is to use the number of characters in my String to determine when to change font sizes. This seems kind of manual.
M

Mary

4 года назад

Ответов: 10

Что делает свойство shrinkWrap во Flutter?

Я новичок во Flutter и очень хочу изучить эту технологию. Я не могу понять работу свойства shrinkWrap в ListView. Я не мог понять документацию Flutter.
H

Harsh Gupta

3 года назад

Ответов: 4

Флаттер Таймер обратного отсчета

Как я могу поместить значение, переданное в конструкцию, чтобы сделать таймер, который округляет до первого десятичного знака и показывает дочерний текст моей RaisedButton? Я пытался, но безуспешно. Мне удается заставить работать функцию обратного вызова с помощью простого таймера, но без периодического и без обновления значения в реальном времени в тексте...import 'package:flutter/material.dart'; import 'dart:ui'; import 'dart:async'; class TimerButton extends StatefulWidget { final Duration timerTastoPremuto; TimerButton(this.timerTastoPremuto); @override _TimerButtonState createState() => _TimerButtonState(); } class _TimerButtonState extends State { @override Widget build(BuildContext context) { return Container( margin: EdgeInsets.all(5.0), height: 135.0, width: 135.0, child: new RaisedButton( elevation: 100.0, color: Colors.white.withOpacity(.8), highlightElevation: 0.0, onPressed: () { int _start = widget.timerTastoPremuto.inMilliseconds; const oneDecimal = const Duration(milliseconds: 100); Timer _timer = new Timer.periodic( oneDecimal, (Timer timer) => setState(() { if (_start
F

Floris Marpepa

3 года назад

Ответов: 13

Как вы определяете хост-платформу из кода Dart?

Для пользовательского интерфейса, который должен немного отличаться на iOS и Android, т.е. на разных платформах, должен быть способ обнаружения на котором работает приложение, но я не нашел его в документации. Что это?
G

Gavin

4 года назад

Ответов: 14

Scaffold.of () вызывается с контекстом, не содержащим Scaffold

Как видите, моя кнопка находится внутри тела Scaffold. Но у меня такое исключение:Scaffold.of () вызывается с контекстом, не содержащим Scaffold.import 'package:flutter/material.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'Flutter Demo', theme: ThemeData( primarySwatch: Colors.blue, ), home: HomePage(), ); } } class HomePage extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('SnackBar Playground'), ), body: Center( child: RaisedButton( color: Colors.pink, textColor: Colors.white, onPressed: _displaySnackBar(context), child: Text('Display SnackBar'), ), ), ); } } _displaySnackBar(BuildContext context) { final snackBar = SnackBar(content: Text('Are you talkin\' to me?')); Scaffold.of(context).showSnackBar(snackBar); } РЕДАКТИРОВАТЬ:Нашел другое решение этой проблемы. Если мы дадим Scaffold ключ, который является GlobalKey , мы можем отобразить SnackBar, как показано ниже, без необходимости заключать наше тело в Builderвиджет. Виджет, который возвращает Scaffold, должен быть виджетом с отслеживанием состояния. _scaffoldKey.currentState.showSnackBar(snackbar);
F

Figen G&#252;ng&#246;r

4 года назад

Ответов: 16

Сообщение "flutter run: Нет подключенных устройств"

Я пытаюсь создать образец приложения с Flutter (свежая установка).Android Studio также установлена ​​(свежая установка).Вот результат работы флаттераflutter run No connected devices. Вывод flutter doctor:Сводка по врачу (чтобы увидеть все подробности, запустите flutter doctor -v): [✓] Flutter (бета-версия канала, v0.1.5, в Linux, локаль en_US.UTF-8) [✓] Android toolchain - разработка для устройств Android (Android SDK 27.0.3) [✓] Android Studio (версия 3.0) [!] VS Code (версия 1.20.1) [!] Подключенные устройства ! Нет доступных устройств ! Врач обнаружил проблемы в 2 категориях. Есть ли решение этой проблемы?
R

Romantic Dev

4 года назад

Ответов: 59

Как отключить экранную клавиатуру?

Я собираю пользовательский ввод с помощью TextFormField, и когда пользователь нажимает FloatingActionButton, указывая, что они выполнены, я хочу закрыть экранную клавиатуру.Как сделать так, чтобы клавиатура исчезла автоматически?import 'package:flutter/material.dart'; class MyHomePage extends StatefulWidget { MyHomePageState createState() => new MyHomePageState(); } class MyHomePageState extends State { TextEditingController _controller = new TextEditingController(); @override Widget build(BuildContext context) { return new Scaffold( appBar: new AppBar(), floatingActionButton: new FloatingActionButton( child: new Icon(Icons.send), onPressed: () { setState(() { // send message // dismiss on screen keyboard here _controller.clear(); }); }, ), body: new Container( alignment: FractionalOffset.center, padding: new EdgeInsets.all(20.0), child: new TextFormField( controller: _controller, decoration: new InputDecoration(labelText: 'Example Text'), ), ), ); } } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return new MaterialApp( home: new MyHomePage(), ); } } void main() { runApp(new MyApp()); }
C

Collin Jackson

5 лет назад

Ответов: 23

Show/hide widgets in Flutter programmatically

In Android, every single View subclass has a setVisibility() method that allows you modify the visibility of a View objectThere are 3 options of setting the visibility: Visible: Renders the View visible inside the layout Invisible: Hides the View, but leaves a gap that is equivalent to what the View would occupy if it were visible Gone: Hides the View, and removes it entirely from the layout. It's as if its height and width were 0dp Is there something equivalent to the above for Widgets in Flutter?For a quick reference: https://developer.android.com/reference/android/view/View.html#attr_android:visibility
u

user3217522

5 лет назад

Ответов: 16

2022 WebDevInsider