Сначала у этого кода появится новый экран и назовите ваш код:
child:
FlatButton(
onPressed: () {
Navigator.pushNamed(context, '/indled');
setState(() {
ReadFile(fileName: 'myfile.txt');
print('Button 1 got pressed');
});
},
......
Он печатает кнопку 1, которая была нажата на консоли, и переходит на новый экран, на котором есть код:
class Indled extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Indledning'),
),
body: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: <Widget>[
Expanded(
child: Container(
padding: EdgeInsets.all(8.0),
child: Text('Indledning 2'),
Он выводит «Indledning 2» на экран в качестве теста, но больше ничего не происходит. У меня есть ваш код в следующем файле:
class ReadFile {
ReadFile({this.fileName});
final String fileName;
Future<void> readMyFile() async {
Directory directory = await getApplicationDocumentsDirectory();
var _localFilePath = (directory.path + "myfile.txt");
if (FileSystemEntity.typeSync(_localFilePath) ==
FileSystemEntityType.file) {
final myFile = await _localFile(_localFilePath);
List<String> linesAsList = myFile.readAsLinesSync();
for (var i = 0; i < linesAsList.length; i++) {
//print("Line No: " + i.toString() + "\n");
print(linesAsList[i]);
}
}
}
Future<File> _localFile(String myPath) async {
return File(myPath);
}
}
В строке: List linesAsList = await myFile.readAsLinesSync ();
Жду предупреждения: жду только фьючерса
поэтому я вынул ждать. Но тот же результат, если ожидание включено.
Я пытался вставить fileName вместо «my file.txt» в ваш код, но результат тот же.