#flutter #dart
#flutter #dart
Вопрос:
Извините, если этот вопрос звучит немного странно.
У меня проблема с тем, сколько времени требуется для загрузки фонового изображения в контроллер. Я использую свойство BackgroundImage контейнера в качестве фона для моего каркаса. Но во время загрузки этой конкретной страницы она показывает черный фон, пока изображение не будет загружено.
Есть ли способ дождаться загрузки изображения, прежде чем перейти на указанную страницу?
Ниже приведен мой пример кода рассматриваемой страницы:
Widget build(BuildContext context) {
return Container(
decoration: BoxDecoration(
image: DecorationImage(
image: AssetImage(imgSubscriptionBGPNG),
fit: BoxFit.fitHeight,
),
),
child: Scaffold(
backgroundColor: Colors.transparent,
body: Column()
),
);
Комментарии:
1. вы пробовали precacheImage api.flutter.dev/flutter/widgets/precacheImage.html
2. Спасибо. Предварительное кэширование изображения сработало.
Ответ №1:
Фух! В конце концов, решить эту проблему было не так уж сложно, спасибо @Mr. Random за его благородное предложение.
Я предварительно кэшировал изображение на предыдущем экране и передал его в качестве аргумента на следующую страницу. Это сработало для меня.
Вот фрагменты кода:
В классе состояния первого экрана:
final bgImage = AssetImage(imgSubscriptionBGPNG);
@override
void didChangeDependencies() {
precacheImage(bgImage, context);
super.didChangeDependencies();
}
И в функции сборки:
BtnButton(
onPressed: () {
Navigator.push(context,CupertinoPageRoute(
builder: (context)
=> SubscriptionScreen(bgImage: bgImage)));}),