Size: a a a

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

2021 March 04

SS

Stefan Stefan in Dart & Flutter по-русски
Roman V.
вы совет спрашиваете или просто в отрицание хотите уйти?
да, я спрашиваю, я не боюсь критики, и если ваш совет будет констурктивным почему бы и не послушать совета
источник

НТ

Никита Тыманович... in Dart & Flutter по-русски
Stefan Stefan
ну сначала лучше попробовать, а лучше взять чтото более продвинутое для реактивности, напр. getx
хм, надо будет изучить, спасибо
источник

НТ

Никита Тыманович... in Dart & Flutter по-русски
У меня была идея сделать каждую строку в виде виджета
источник

НТ

Никита Тыманович... in Dart & Flutter по-русски
и обращаться по ключу
источник

SS

Stefan Stefan in Dart & Flutter по-русски
Никита Тыманович
хм, надо будет изучить, спасибо
вот их канал кстати
источник

SS

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

НТ

Никита Тыманович... in Dart & Flutter по-русски
Stefan Stefan
вот их канал кстати
хох, спасибо) Материала на сегодня хватит)
источник

SS

Stefan Stefan in Dart & Flutter по-русски
Никита Тыманович
хм, надо будет изучить, спасибо
если у вас много виджетов то лучше делать через кастомную отрисовку
источник

SS

Stefan Stefan in Dart & Flutter по-русски
будет шустро
источник

SS

Stefan Stefan in Dart & Flutter по-русски
курите в сторону CustomPainter
источник

НТ

Никита Тыманович... in Dart & Flutter по-русски
Stefan Stefan
если у вас много виджетов то лучше делать через кастомную отрисовку
Просто мое желание обратиться к одному из 150 контейнеров в одном виджете лично мне недостижимо в силу незнания, поэтому возникла идея сделать 15 виджетов строк по 10 контейнеров и делать уже им setState
источник

НТ

Никита Тыманович... in Dart & Flutter по-русски
Но уж очень не хочется костылить, вот я решил спросить
источник

SS

Stefan Stefan in Dart & Flutter по-русски
многовато, делайте через кастомную отрисовку, будет значительно экономней по ресурсам
источник

НТ

Никита Тыманович... in Dart & Flutter по-русски
понял, придется читать, спасибо
источник

SS

Stefan Stefan in Dart & Flutter по-русски
там вьсо просто, вот пример
источник

SS

Stefan Stefan in Dart & Flutter по-русски
import 'dart:math';
import 'dart:ui' as ui;

import 'package:flutter/material.dart';
import 'package:emeet/constants.dart';

class RadarView extends StatelessWidget {
 @override
 Widget build(BuildContext context) {
   return Stack(children: [
     // Positioned.fill(
     //   child: RadarView2(),
     // ),

     Positioned(
       child: Container(
         padding: EdgeInsets.symmetric(vertical: 40, ),
               child: RadarView2(),
       ),
     ),

     Positioned(
       child: Center(
         child: Container(
           height: 90.0,
           width: 90.0,
           padding: EdgeInsets.all(10),
           child: Image.asset('assets/images/splash.png'),
           decoration: BoxDecoration(

               // color: Colors.grey,
               // color: secondaryGradientColor,

               // image: DecorationImage(
               //   image: AssetImage('assets/images/splash.png'),
               //   fit: BoxFit.cover,
               // ),

               shape: BoxShape.circle,
               boxShadow: [
                 BoxShadow(
                   // color: Color(0xFF0F1532),
                   color: primaryGradientColor,
                   // .withOpacity(.5),
                   blurRadius: 300.0,
                   spreadRadius: 50.0,
                 ),
               ]),
         ),
       ),
     ),
   ]);
 }
}

class RadarView2 extends StatefulWidget {
 @override
 _RadarViewState createState() => _RadarViewState();
}

class _RadarViewState extends State<RadarView2> with SingleTickerProviderStateMixin {
 AnimationController _controller;
 Animation<double> _animation;

 @override
 void initState() {
   super.initState();

   _controller = AnimationController(vsync: this, duration: Duration(seconds: 5));
   _animation = Tween(begin: .0, end: pi * 2).animate(_controller);

   // disable UI reaction responce
   _controller.addListener(() {
     setState(() {});
   });

   _controller.repeat();
 }

 @override
 void dispose() {
   _controller.dispose();
   super.dispose();
 }

 @override
 Widget build(BuildContext context) {
   return AnimatedBuilder(
     animation: _animation,
     builder: (context, child) {
       return CustomPaint(
         size: const Size(double.infinity, double.infinity),
         painter: RadarPainter(_animation.value),
       );
     },
   );
 }
}

class RadarPainter extends CustomPainter {
 final double angle;

 final Paint _bgPaint = Paint()
   ..color = Colors.indigo[100]
   ..strokeWidth = 1
   ..style = PaintingStyle.stroke;

 final Paint _paint = Paint()..style = PaintingStyle.fill;

 int circleCount = 3;

 RadarPainter(this.angle);

 @override
 void paint(Canvas canvas, Size size) {
   var radius = min(size.width / 2, size.height / 2);

   canvas.drawLine(
       Offset(size.width / 2, size.height / 2 - radius), Offset(size.width / 2, size.height / 2 + radius), _bgPaint);
   canvas.drawLine(
       Offset(size.width / 2 - radius, size.height / 2), Offset(size.width / 2 + radius, size.height / 2), _bgPaint);

   for (var i = 1; i <= circleCount; ++i) {
     canvas.drawCircle(Offset(size.width / 2, size.height / 2), radius * i / circleCount, _bgPaint);
   }

   _paint.shader = ui.Gradient.sweep(Offset(size.width / 2, size.height / 2),
       [Colors.white.withOpacity(.01), Colors.white.withOpacity(.5)], [.0, 1.0], TileMode.clamp, .0, pi / 12);

   canvas.save();
   var r = sqrt(pow(size.width, 2) + pow(size.height, 2));
   var startAngle = atan(size.height / size.width);
   var p0 = Point(r * cos(startAngle), r * sin(startAngle));
   var px = Point(r * cos(angle + startAngle), r * sin(angle + startAngle));
   canvas.translate((p0.x - px.x) / 2, (p0.y - px.y) / 2);
   canvas.rotate(angle);

   canvas.drawArc(
       Rect.fromCircle(center: Offset(size.width / 2, size.height / 2), radius: radius), 0, pi / 12, true, _paint);
   canvas.restore();
 }

 @override
 bool shouldRepaint(CustomPainter oldDelegate) {
   return true;
 }
}
источник

НТ

Никита Тыманович... in Dart & Flutter по-русски
Stefan Stefan
там вьсо просто, вот пример
спасибо) пойду изучать материал
источник

EK

Evgeny Kot in Dart & Flutter по-русски
@Lisss13 вакансии в другой канал, пожалуйста
источник

AM

Arseniy Mironov in Dart & Flutter по-русски
Evgeny Kot
@Lisss13 вакансии в другой канал, пожалуйста
извини, это не вакансия а подработка. Я от отчаяния
источник

EK

Evgeny Kot in Dart & Flutter по-русски
Arseniy Mironov
извини, это не вакансия а подработка. Я от отчаяния
Напиши в личку, я закину в Jobs
источник