Size: a a a

Dart & Flutter по-русски

2020 November 28

t

tdesc in Dart & Flutter по-русски
ну короче так себе способ программы писать
источник

I

IDONTSUDO in Dart & Flutter по-русски
Ну да
источник

I

IDONTSUDO in Dart & Flutter по-русски
Но проект большой наркоманов много
источник

t

tdesc in Dart & Flutter по-русски
слишком много
источник

I

IIIYT in Dart & Flutter по-русски
Вечер добрый. Продолжаю изучать flutter и такой вопрос. У меня сейчас большинство виджетов отрисовывается futerbuilder'ом при получении ответа на запрос. И похоже так делать не стоило... Можете отправить инфу, как правильно нужно с этим работать?
источник

Н

Николай in Dart & Flutter по-русски
Здравствуйте, при включении эмулятора пишет Retry after fixing problem by hand Как быть?
источник
2020 November 29

AU

Andrey Unger in Dart & Flutter по-русски
Кто-то тут спрашивал полезен ли девтулз флаттеровский. Вот видос недавно вышел. Гайд по возможностям девтулзы и главное когда и как надо их применять. Новичкам думаю будет очень полезно: https://youtu.be/b4dCHbINmyk
источник

@

@tsinis in Dart & Flutter по-русски
дядька на серьёзных щщах, надо посмотреть, спс
источник

P

Pa_blooo in Dart & Flutter по-русски
ахх
источник

VI

Vitalii Ishkevych in Dart & Flutter по-русски
FAILURE: Build failed with an exception.

* Where:
Build file 'D:\Programming\Shop\android\app\build.gradle' line: 24

* What went wrong:
A problem occurred evaluating project ':app'.
> Failed to apply plugin [id 'com.android.internal.version-check']
  > Minimum supported Gradle version is 6.5. Current version is 5.6.2. If using the gradle wrapper, try editing the distributionUrl in D:\Programming\Shop\android\gradle\wrapper\gradle-wrapper.properties to gradle-6.5-all.zip

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 1s
Exception: Gradle task assembleDebug failed with exit code 1
источник

VI

Vitalii Ishkevych in Dart & Flutter по-русски
Что делать нужно?
источник

SM

Serge Matveenko in Dart & Flutter по-русски
Serge Matveenko
Все силы на null safety:) Я уже немножко начал;)
источник

Ю

Юрий in Dart & Flutter по-русски
Vitalii Ishkevych
Что делать нужно?
Прочитать сообщение
источник

UM

Umut Mamyrgazieva in Dart & Flutter по-русски
Доброе утро!  Я начинаю изучать flutter, много чего не знаю. Мне дали задание Бесконечная загрузка при отсутствии интернета. Надо показать сообщение «Нет связи. Проверьте интернет-соединение».  Я в интернете нашла этот код, но выдает такого сообщения, что можно сделать? import 'package:share/share.dart';

void main() {
 // SystemChrome.setPreferredOrientations(
 //     [DeviceOrientation.portraitUp, DeviceOrientation.portraitDown]);
 // Status bar colors
 SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.dark.copyWith(
     statusBarColor: Colors.transparent, // Color for Android
     statusBarBrightness: Brightness.dark, // for IOS.
     statusBarIconBrightness: Brightness.light));

 // SystemChrome.setEnabledSystemUIOverlays([]);
 runApp(App());
}

class HomePage extends StatefulWidget {
 @override
 _HomePageState createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
 Map _source = {ConnectivityResult.none: false};
 MyConnectivity _connectivity = MyConnectivity.instance;

 @override
 void initState() {
   super.initState();
   _connectivity.initialise();
   _connectivity.myStream.listen((source) {
     setState(() => _source = source);
   });
 }

 @override
 Widget build(BuildContext context) {
   String string;
   switch (_source.keys.toList()[0]) {
     case ConnectivityResult.none:
       string = "Offline";
       break;
     case ConnectivityResult.mobile:
       string = "Mobile: Online";
       break;
     case ConnectivityResult.wifi:
       string = "WiFi: Online";
   }

   return Scaffold(
     appBar: AppBar(title: Text("Internet")),
     body: Center(child: Text("$string", style: TextStyle(fontSize: 36))),
   );
 }

 @override
 void dispose() {
   _connectivity.disposeStream();
   super.dispose();
 }
}

class MyConnectivity {
 MyConnectivity._internal();

 static final MyConnectivity _instance = MyConnectivity._internal();

 static MyConnectivity get instance => _instance;

 Connectivity connectivity = Connectivity();

 StreamController controller = StreamController.broadcast();

 Stream get myStream => controller.stream;

 void initialise() async {
   ConnectivityResult result = await connectivity.checkConnectivity();
   _checkStatus(result);
   connectivity.onConnectivityChanged.listen((result) {
     _checkStatus(result);
   });
 }

 void _checkStatus(ConnectivityResult result) async {
   bool isOnline = false;
   try {
     final result = await InternetAddress.lookup('example.com');
     if (result.isNotEmpty && result[0].rawAddress.isNotEmpty) {
       isOnline = true;
     } else
       isOnline = false;
   } on SocketException catch (_) {
     isOnline = false;
   }
   controller.sink.add({result: isOnline});
 }

 void disposeStream() => controller.close();
}

class _MyHomePageState extends State<MyHomePage> {
 @override
 Widget build(BuildContext context) {
   return WillPopScope(
     onWillPop: () async {
       return Navigator.canPop(context);
     },
     child: Scaffold(
       appBar: AppBar(title: const Text('HomePage')),
       floatingActionButtonLocation: FloatingActionButtonLocation.centerFloat,
       floatingActionButton: FloatingActionButton(
         child: const Icon(Icons.add),
         backgroundColor: Colors.red,
         onPressed: () {
           Navigator.push(
               context, MaterialPageRoute(builder: (context) => SecondPage()));
         },
       ),
     ),
   );
 }
}

Widget build(BuildContext context) {
 return WillPopScope(
     onWillPop: () {
       return Future.value(true); // or return Future.value(false);
     },
     child: Container());
}
источник

О

Открывая Вьетнам... in Dart & Flutter по-русски
Господа, буду благодарен за совет новичку.

Необходимо сделать так чтобы пользователь приложения мог выбрать из 30 различных элементов приложения (например, список задач или свой график работы или свои показатели KPI или список инструкций к работе и тп) нужные для отображения на экране. Например, пользователь выбрал 4 из 30 возможных блоков и только они отображаются у него на экране, остальные 26 ему не нужны.

Как наиболее гибко лучше это осуществить?
Вариант сразу написать все 30 виджетов на экране и скрыть через какой-нибудь visibility не очень нравится, хочется добавлять нужные элементы в дерево по запросу пользователя, так же visibility не дает решения если пользователь захочет добавить два одинаковых элемента.

Добавлять напрямую в лист виджетов? В таком случае не особо представляю как хранить это дерево новых виджетов.

В какую сторону копать?
источник

MK

Maks Kravchenko in Dart & Flutter по-русски
Открывая Вьетнам
Господа, буду благодарен за совет новичку.

Необходимо сделать так чтобы пользователь приложения мог выбрать из 30 различных элементов приложения (например, список задач или свой график работы или свои показатели KPI или список инструкций к работе и тп) нужные для отображения на экране. Например, пользователь выбрал 4 из 30 возможных блоков и только они отображаются у него на экране, остальные 26 ему не нужны.

Как наиболее гибко лучше это осуществить?
Вариант сразу написать все 30 виджетов на экране и скрыть через какой-нибудь visibility не очень нравится, хочется добавлять нужные элементы в дерево по запросу пользователя, так же visibility не дает решения если пользователь захочет добавить два одинаковых элемента.

Добавлять напрямую в лист виджетов? В таком случае не особо представляю как хранить это дерево новых виджетов.

В какую сторону копать?
я бы отталкивался от хранения в объекте данных в таком формате:
const elements = { element key: element, … }

в селект прокидывал бы elements.keys

а в рендере условно
elements.entries.map(([key, element]) => store.activeKeys.includes(key) && element)
источник

ЕБ

Евгений Баладжа... in Dart & Flutter по-русски
Привет всем! Вроде типичная задача - отобразить фотку на экране. Перед этим проверить соотношение сторон, если вертикальная - отобразить как есть, а если горизонтальная - повернуть на 90%. Как такое решается? Я попробовал сначала создать виджет Image.memory(..), а потом проверить его ширину/высоту, но они null. Пробовал использовать пакет image, но функция decodeImage()  жутко тормознутая - на телефоне 3 секунды (!!). Но ведь эту же задачу сам Андроид решает мгновенно, почему Dart не может? Какие у меня еще варианты?
источник

M

MiT in Dart & Flutter по-русски
Евгений Баладжа
Привет всем! Вроде типичная задача - отобразить фотку на экране. Перед этим проверить соотношение сторон, если вертикальная - отобразить как есть, а если горизонтальная - повернуть на 90%. Как такое решается? Я попробовал сначала создать виджет Image.memory(..), а потом проверить его ширину/высоту, но они null. Пробовал использовать пакет image, но функция decodeImage()  жутко тормознутая - на телефоне 3 секунды (!!). Но ведь эту же задачу сам Андроид решает мгновенно, почему Dart не может? Какие у меня еще варианты?
Имхо, типичная задача для бэка
источник

ЕБ

Евгений Баладжа... in Dart & Flutter по-русски
MiT
Имхо, типичная задача для бэка
Во первых это уже не модно, во вторых у меня server less )
источник

О

Открывая Вьетнам... in Dart & Flutter по-русски
Maks Kravchenko
я бы отталкивался от хранения в объекте данных в таком формате:
const elements = { element key: element, … }

в селект прокидывал бы elements.keys

а в рендере условно
elements.entries.map(([key, element]) => store.activeKeys.includes(key) && element)
Огонь, спасибо!

Если у кого-то есть другие варианты буду рад услышать
источник