【发布时间】:2020-07-04 15:04:50
【问题描述】:
我有一个应用程序,我在 sliverappbar 中显示图像。首次加载页面时,图像尚不存在。加载图像需要一段时间,在那段时间里,我看到了 sliverappbar 的背景颜色。
我参考了这个线程 - Flutter: Preload images on SliverAppbar,并按照它所说的进行操作。然而,加载图像的延迟仍然存在。有没有办法可以摆脱延迟?
class DescriptionPage extends StatefulWidget {
@override
_DescriptionPageState createState() => _DescriptionPageState();
}
class _DescriptionPageState extends State<DescriptionPage> {
Image img;
void initState() {
super.initState();
img = Image.asset("Assets/Images/bnha.jpg");
}
@override
void didChangeDependencies() {
super.didChangeDependencies();
precacheImage(img.image, context);
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: CustomScrollView(slivers: <Widget>[
SliverAppBar(
leading: GestureDetector(
child: Icon(Icons.arrow_back),
onTap: () => Navigator.of(context).pop(),
),
shape: ContinuousRectangleBorder(
borderRadius: BorderRadius.only(
bottomLeft: Radius.circular(50.0),
bottomRight: Radius.circular(50.0))),
elevation: 5,
expandedHeight: 200,
pinned: true,
floating: true,
flexibleSpace: FlexibleSpaceBar(
/*centerTitle: true,
title: Text(
'Boku no Hero Academia',
),*/
background: ClipRRect(
borderRadius: BorderRadius.only(
bottomLeft: Radius.circular(15.0),
bottomRight: Radius.circular(15.0)),
child: img,
),
),
),
]));
}
}
【问题讨论】:
-
这个答案(以及它下面的评论)怎么样? stackoverflow.com/a/51343954/12086560在导航到页面之前预加载和缓存您的图像可能会解决问题。
标签: flutter