Неудачное утверждение: строка 320 поз. 12: «ширина> 0.0»: неверно для простой боковой панели в Flutter

#flutter #dart

#flutter #dart

Вопрос:

Я создал боковую панель для своего приложения, чтобы показать некоторые значки:

 Widget build(BuildContext context) {
    return Container(
      color: widget.backgroundColor,
      //width: double.infinity,
      child: Column(
        mainAxisAlignment: MainAxisAlignment.spaceEvenly,
        children: [
          Container(
              child: FittedBox(
                  child: Image(image: AssetImage('my_icon.png')))),
          FittedBox(child: Image(image: AssetImage('my_st.png'))),
          FittedBox(child: Image(image: AssetImage('my_cart_2.png'))),
          FittedBox(child: Image(image: AssetImage('my_info_2.png'))),
          FittedBox(child: Image(image: AssetImage('my_rotate_2.png')))
        ],
      ),
    );
  }
 

Несмотря на то, что он отображается идеально, я получаю эту ошибку:

 ════════ Exception caught by rendering library ═════════════════════════════════════════════════════
The following assertion was thrown during performLayout():
'package:flutter/src/rendering/box.dart': Failed assertion: line 320 pos 12: 'width > 0.0': is not true.


Either the assertion indicates an error in the framework itself, or we should provide substantially more information in this error message to help you determine and fix the underlying cause.
In either case, please report this assertion by filing a bug on GitHub:
  https://github.com/flutter/flutter/issues/new?template=BUG.md

The relevant error-causing widget was: 
  FittedBox file:///home/user/AndroidStudioProjects/flutter_app/lib/sidebar.dart:23:22
When the exception was thrown, this was the stack: 
#2      BoxConstraints.constrainSizeAndAttemptToPreserveAspectRatio (package:flutter/src/rendering/box.dart:320:12)
#3      RenderFittedBox.performLayout (package:flutter/src/rendering/proxy_box.dart:2433:30)
#4      RenderObject.layout (package:flutter/src/rendering/object.dart:1777:7)
#5      RenderFlex.performLayout (package:flutter/src/rendering/flex.dart:768:15)
#6      RenderObject.layout (package:flutter/src/rendering/object.dart:1777:7)
 

Где ошибка возникает в первом FittedBox . Если я удалю это, я получу ошибку на втором FittedBox .

Я думал, что это как-то связано с Image отсутствием ширины, но установка width для них (просто для проверки) не сработала.

Несмотря на то, что я получаю ошибки, боковая панель отображается правильно.

Ответ №1:

Нет необходимости переносить Image в FittedBox . Просто передайте BoxFit параметр в Image fit параметр.

 Image(image: AssetImage('my_icon.png'), fit: BoxFit.fitWidth)