flutter - Flutter:如何将资产路径传递给新的 Screen 类
问题描述
我需要将作为文本文件的资产路径传递给新屏幕。我想通过使用 OnTap() 从 ListTile 传递该资产路径,并将该路径传递给新的屏幕类。
资产路径:
'lib/asset/textfile/cs_one.txt'
我的列表瓷砖:
ListTile(
leading: CircleAvatar(
backgroundImage: AssetImage("image/icon.png"),
),
title: Text("Story One"),
trailing: Icon(Icons.arrow_forward),
onTap: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => cs_one() ),
);
}
我想将路径传递给另一个类,这是一个新屏幕,我将从那里加载资产数据。我知道如何加载我只需要帮助将它从 ListTile 传递到新屏幕类的资产数据。
解决方案
以下是在 Flutter 中将数据传递给另一个小部件的方法:
class MyWidget extends StatelessWidget {
const MyWidget({Key? key}) : super(key: key);
final String assetPath = 'lib/asset/textfile/cs_one.txt';
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(),
body: Center(
child: ListTile(
leading: CircleAvatar(
backgroundImage: AssetImage(assetPath),
),
title: const Text("Story One"),
trailing: const Icon(Icons.arrow_forward),
onTap: () {
Navigator.push(context, MaterialPageRoute(
builder: (context) => NextScreen(assetPath: assetPath)
));
}
),
)
);
}
}
class NextScreen extends StatelessWidget {
final String assetPath;
const NextScreen({Key? key, required this.assetPath}) : super(key: key);
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Text(assetPath),
),
);
}
}
推荐阅读
- html - 为什么当正文中的代码工作时,头部标签内的代码不工作?
- java - MyBatis 偶尔使用 selectByPrimaryKey 时无法获取记录
- r - 在 R 中的 multidplyr 中使用 distinct() 时出错
- reactjs - 无效的钩子调用,它让我发疯?
- api - 如何从 API 保存数据 - 颤振
- git - 无法在 docker-compose 中克隆存储库
- python - 如何在使用 pandas_profiling 运行 ProfileReport 时解决 TypeError?
- reed-solomon - 为 reed-solomon 编码选择伽罗瓦域
- javascript - 如何增加/减少购物车中产品的数量?
- javascript - TamperMonkey JS UserScript 绕过等待时间