Size: a a a

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

2020 June 02

В

Влад in Dart & Flutter по-русски
кто сталкивался?
источник

YM

Yerassyl Maikhanov in Dart & Flutter по-русски
Evgeny Cherkasov
Мне тоже подобное надо. Выше скидывал картинку.
Пока не нашел готовый виджет.
Похоже придется делать свой
вам еще нужно?
источник

YM

Yerassyl Maikhanov in Dart & Flutter по-русски
источник

YM

Yerassyl Maikhanov in Dart & Flutter по-русски
код сюда можно скидывать или на обменник заливать?
источник

YM

Yerassyl Maikhanov in Dart & Flutter по-русски
class CustomStepper extends StatelessWidget {
 final List<Function> functions;
 final int current;

 CustomStepper({this.functions, this.current, Key key}) : super(key: key);

 @override
 Widget build(BuildContext context) {
   return Row(
       mainAxisAlignment: MainAxisAlignment.center,
       crossAxisAlignment: CrossAxisAlignment.center,
       children: [
         ...functions.map((e) {
           var size = GFSize.MEDIUM;
           var index = functions.indexOf(e);
           var color2 = index <= current ? Colors.green : Colors.grey;
           return Row(
             children: <Widget>[
               Container(
                 height: size,
                 width: size,
                 decoration: BoxDecoration(
                   color: color2,
                   shape: BoxShape.circle,
                 ),
                 child: Center(
                   child: Text(
                     (index + 1).toString(),
                     style: TextStyle(fontSize: 16, color: Colors.white),
                   ),
                 ),
               ),
               index + 1 >= functions.length
                   ? SizedBox()
                   : Padding(
                       padding: const EdgeInsets.all(8.0),
                       child: Container(
                         width: GFSize.MEDIUM,
                         child: Center(
                           child: Text(
                             '- - -',
                             style: TextStyle(fontSize: 20, color: color2),
                           ),
                         ),
                       ),
                     )
             ],
           );
         }).toList()
       ]);
 }
}
источник

PK

Pavel Kozlovskiy in Dart & Flutter по-русски
Ребят, а у вас так же, или можно как то красивше это делать?
Text('${S.of(context).addJobPageTitle}: ${widget._project.title}')
форматтером пользуетесь?
источник

YM

Yerassyl Maikhanov in Dart & Flutter по-русски
Так же
источник

RV

Roman Vasiliev in Dart & Flutter по-русски
переменные забанили?
источник

RV

Roman Vasiliev in Dart & Flutter по-русски
final title = S.of(context).addJobPageTitle;
Text('$title')
источник

N

Nick in Dart & Flutter по-русски
Вдруг кому интересно, google потихоньку пилит для flutter codelabs: https://codelabs.developers.google.com/?cat=Flutter
источник

RK

Rinat Kurmashev in Dart & Flutter по-русски
Как sliver list сделать separated?
источник

RV

Roman Vasiliev in Dart & Flutter по-русски
Rinat Kurmashev
Как sliver list сделать separated?
выдернуть с ListView.separated)
источник

RV

Roman Vasiliev in Dart & Flutter по-русски
Я в таком виде дернул делегат
class _SeparatedItemBuilderDelegate extends SliverChildBuilderDelegate {
 _SeparatedItemBuilderDelegate({
   @required IndexedWidgetBuilder itemBuilder,
   @required IndexedWidgetBuilder separatorBuilder,
   @required int itemCount,
   bool addAutomaticKeepAlives = true,
   bool addRepaintBoundaries = true,
   bool addSemanticIndexes = true,
 }) : super( // Copied from [ListView.separated] childrenDelegate value set
       (BuildContext context, int index) {
     final int itemIndex = index ~/ 2;
     Widget widget;
     if (index.isEven) {
       widget = itemBuilder(context, itemIndex);
     } else {
       widget = separatorBuilder(context, itemIndex);
       assert(() {
         if (widget == null) {
           throw FlutterError('separatorBuilder cannot return null.');
         }
         return true;
       }());
     }
     return widget;
   },
   childCount: _computeSemanticChildCount(itemCount),
   addAutomaticKeepAlives: addAutomaticKeepAlives,
   addRepaintBoundaries: addRepaintBoundaries,
   addSemanticIndexes: addSemanticIndexes,
   semanticIndexCallback: (Widget _, int index) {
     return index.isEven ? index ~/ 2 : null;
   },
 );

 // Helper method to compute the semantic child count for the separated constructor.
 static int _computeSemanticChildCount(int itemCount) {
   return max(0, itemCount * 2 - 1);
 }
}
источник

RK

Rinat Kurmashev in Dart & Flutter по-русски
Roman Vasiliev
Я в таком виде дернул делегат
class _SeparatedItemBuilderDelegate extends SliverChildBuilderDelegate {
 _SeparatedItemBuilderDelegate({
   @required IndexedWidgetBuilder itemBuilder,
   @required IndexedWidgetBuilder separatorBuilder,
   @required int itemCount,
   bool addAutomaticKeepAlives = true,
   bool addRepaintBoundaries = true,
   bool addSemanticIndexes = true,
 }) : super( // Copied from [ListView.separated] childrenDelegate value set
       (BuildContext context, int index) {
     final int itemIndex = index ~/ 2;
     Widget widget;
     if (index.isEven) {
       widget = itemBuilder(context, itemIndex);
     } else {
       widget = separatorBuilder(context, itemIndex);
       assert(() {
         if (widget == null) {
           throw FlutterError('separatorBuilder cannot return null.');
         }
         return true;
       }());
     }
     return widget;
   },
   childCount: _computeSemanticChildCount(itemCount),
   addAutomaticKeepAlives: addAutomaticKeepAlives,
   addRepaintBoundaries: addRepaintBoundaries,
   addSemanticIndexes: addSemanticIndexes,
   semanticIndexCallback: (Widget _, int index) {
     return index.isEven ? index ~/ 2 : null;
   },
 );

 // Helper method to compute the semantic child count for the separated constructor.
 static int _computeSemanticChildCount(int itemCount) {
   return max(0, itemCount * 2 - 1);
 }
}
благодарствую!
источник

АР

Александр Сергеевич ... in Dart & Flutter по-русски
интересно, спасибо
источник

OP

Oleg Pchelkin in Dart & Flutter по-русски
Круто, надо будет глянуть)
источник

Z

Zorskai Studio in Dart & Flutter по-русски
Ребят, здравстуйте, подскажите как добавить текст в launch_background.xml ???

<?xml version="1.0" encoding="utf-8"?>
<!-- Modify this file to customize your launch splash screen -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
 <!--  <item android:drawable="@android:color/ic_launcher_background" />-->

   <!-- You can insert your own image assets here -->
   <item>
       <bitmap
           android:gravity="center"
           android:src="@mipmap/ic_launcher" />
   </item>
</layer-list>
источник

r

roman G in Dart & Flutter по-русски
создал плагин, который должен установить APK файл, а затем вернуть состояние установки(все прошло нормально или нет)

создал плагин
MyPlugin : FlutterPlugin, MethodCallHandler, PluginRegistry.ActivityResultListener, ActivityAware

добавил обработку прикреплении активити
override fun onAttachedToActivity(binding: ActivityPluginBinding) {
   this.activity = binding.activity;
}


реализовал
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?): Boolean {
   if (requestCode == INSTALL_PACKAGE_RESULT) {
       if (resultCode == Activity.RESULT_OK) {
           channel.invokeMethod(
                   "installAppResult",
                   true
           )
       } else if (resultCode == Activity.RESULT_CANCELED) {
           channel.invokeMethod(
                   "installAppResult",
                   false
           )
       }
   }
   return true
}


Запускаю активити
a
ctivity?.startActivityForResult(installAppIntent, INSTALL_PACKAGE_RESULT);
установка запускается, но в onActivityResult не прилетает результат усстановки приложения
источник

r

roman G in Dart & Flutter по-русски
нашел ошибку

override fun onAttachedToActivity(binding: ActivityPluginBinding) {
   this.activity = binding.activity;
   binding.addActivityResultListener(this)//добавил эту строчку
}

нужно было добавить листенер
источник

d

dim24 in Dart & Flutter по-русски
Скиньте ссылки на обучающий материал по флаттеру
источник