flutter - Flutter/Dart - 透明背景直到未来到来?
问题描述
我正在尝试获取一个PageView.Builder
使用网络数据构建的。当我尝试从另一个页面滑动到它时,我得到一个白色背景,它似乎充当占位符,直到来自该页面的网络数据Future
到达。我想要的是原始页面在页面构建之前保持在后台可见。但是,尽管我已经尝试了我能想到的一切,但背景仍然是白色的,直到Future
到达填充PageView
. 在到达之前,我如何才能获得清晰的或至少降低不透明度的占位符?
我使用了 CircularProgressIndicator 作为占位符,但它不仅看起来很糟糕(滑动将其向各个方向炸毁),而且背景仍然顽固地不透明和白色。我也尝试了Container
一个透明的颜色,但这只是覆盖了未来的白色背景。我怎样才能摆脱像占位符一样的不透明白色背景Future
?
这是未来;
FutureBuilder<List<ReplyContent>> replyStage({String replyid}) {
return FutureBuilder<List<ReplyContent>>(
future: downloadReplyJSON(replyid),
builder: (context, snapshot) {
if (snapshot.hasData) {
List<ReplyContent> replycrafts = snapshot.data;
return StageBuilderVR(replycrafts, Globals.masterTitle);
} else if (snapshot.hasError) {
return Text('${snapshot.error}');
}
return
Container(
color: Colors.transparent,
);
}
);
}
解决方案
因此,我决定完全采用不同的方法,并创建了一个虚拟页面,它以图形方式镜像上一页,其中包含上一页的所有图形元素,但没有任何代码。我用这个假人代替了 CircularProgressIndicator。这可能不是正确或最好的方法,但它似乎运作良好。我对结果很满意。
FutureBuilder<List<ReplyContent>> replyStage({String replyid, String replytitle}) {
return new FutureBuilder<List<ReplyContent>>(
future: downloadReplyJSON(),
builder: (context, snapshot) {
if (snapshot.hasData) {
List<ReplyContent> replycrafts = snapshot.data;
return StageBuilderVR(replycrafts, replytitle);
} else if (snapshot.hasError) {
return Text('${snapshot.error}');
}
return DummyPage();
},
);
}
推荐阅读
- spring-security - 实施 AuthoritiesExtractor 后主体未显示权限
- node.js - Passport.js:本地登录策略的序列化问题
- jquery - 我想读一张桌子。如何访问下一个 tr:
- gradle - intellij 理念:在 gradle 项目中生成 MANIFEST.MF
- node.js - 在猫鼬中删除子文档
- web - 网页在加载之前被 Google 抓取
- rust - 如何为同一个 Serde 字段接受多个反序列化名称?
- javascript - 在子文件夹中运行的 Angular 7 中的路由无法正常工作
- python - Selenium 不跟随点击打开一个新标签
- objectbox - 升级 Objectbox 库时出现双字段索引问题