【发布时间】:2021-11-17 23:52:44
【问题描述】:
我想通过从另一个类作为字符串接收的资产路径加载资产(文本文件)来在容器中显示文本。但运行容器后显示为空。这种方法我试过了。
资产路径字符串:
final String assetPath = 'lib/asset/textfile/cs_one.txt';
第一类(将assetpath作为字符串发送):
Navigator.push(
context,
MaterialPageRoute(builder: (context) => cs_one( assetPath : assetPath) ),
);
第二类(从第一类接收资产路径并加载数据):
class cs_one extends StatefulWidget {
final String assetPath;
const cs_one({Key? key, required this.assetPath}) : super(key: key);
@override
_cs_oneState createState() => _cs_oneState( );
}
class _cs_oneState extends State<cs_one> {
String? data;
static String? get assetPath => assetPath;
void _loadData() async {
final _loadedData =
await rootBundle.loadString(assetPath!);
setState(() {
data = _loadedData;
});
}
@override
void initState() {
super.initState();
_loadData();
}
在小部件中显示文本:
body: SingleChildScrollView(
scrollDirection: Axis.vertical,
child: Container(
margin: EdgeInsets.all(15),
width: 360,
child: Text(data ?? 'empty'),
))),
【问题讨论】:
标签: string flutter dart assets