#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)