单独的JSON文件显示完全相同的Lottie Animation(Flutter)

时间:2019-03-04 04:24:42

标签: dart flutter lottie

我正在使用pub.dartlang.org中的lottie_flutter: ^0.2.0软件包。

我有2个独立的.json文件,这两个文件在我的资产文件夹中都是唯一命名的。

在在线Lottie预览器中查看它们,一切看起来都正确。两种动画都不一样。

当我实际加载资产并在项目中运行动画时,它在两个小部件中都显示了EXACT SAME资产。我可以很好地加载备用的.json动画,但是我想,因为我使用的2个动画在外观上是如此相似,这在某种程度上显示了相同的资产,而不是正确的资产。

void _loadButtonPressed(String assetName) {
loadAsset(assetName,context).then((LottieComposition composition) {
  setState(() {
    _assetName = assetName;
    _composition = composition;
    _controller.reset();
  });
});
}

loadAsset

Future<LottieComposition> loadAsset(String assetName,BuildContext 
context) async {
print("loading asset : "+assetName);
return await  DefaultAssetBundle.of(context)
  .loadString(assetName,cache: false)
  .then<Map<String, dynamic>>((String data) => json.decode(data))
  .then((Map<String, dynamic> map) =>LottieComposition.fromMap(map));
}

和我的构建方法

 @override
 Widget build(BuildContext context) {
 return Center(
    child: Container(
  width: 200,
  height: 200,
  child: Transform(transform: Matrix4.translationValues(0.0, 20.0, 
 0.0),
       child: Transform.scale(
        scale: 2.0,
        child: Lottie(
        composition: _composition,
        size: const Size(200.0, 200.0),
        controller: _controller,
      ),
    ),
  ),
));
}
}

我认为不包括实际的JSON文件,因为它们来自客户端。

0 个答案:

没有答案