这是我的代码,它可以选择文件
FilePickerResult? result;
String _fileName = '';
PlatformFile? pickedfile;
File? fileToDisplay;
代码的延续:
void pickFile() async {
try {
result = (await FilePicker.platform
.pickFiles(type: FileType.any, allowMultiple: false))!;
if (result != null) {
List<File> files = result!.paths.map((path) => File(path!)).toList();
_fileName = result!.files.first.name;
pickedfile = result!.files.first;
fileToDisplay = File(pickedfile!.path.toString());
}
} catch (e) {
print(e);
}
}
我想在UI中显示的代码,单击文件后,文件名将显示在UI中
ElevatedButton(
onPressed: () {
pickFile();
},
style: ElevatedButton.styleFrom(
minimumSize: const Size(71, 28),
backgroundColor: Color(0xFFAECAD6),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(4),
),
),
label: Text(
'Add File',
style: TextStyle(
fontSize: 12,
fontWeight: FontWeight.w400,
color: Colors.black),
),
),
],
),
显示文本的代码
Column(
children: [
Container(
height: 150,
width: double.infinity,
color: Colors.white,
child: Text(_fileName))
],
),
1条答案
按热度按时间3pvhb19x1#
你需要等待文件选取器选择文件,然后更新状态。要等待任何特定代码,你只需要在代码前添加async关键字,但该方法或代码应该是未来的。要更新状态,请使用setState函数。对GestureDetector的pickFile函数和onTap函数进行以下更改。
选择文件():-
点击:-
输出:-