【发布时间】:2020-01-03 10:02:06
【问题描述】:
我是 Flutter 开发的新手,我正在尝试显示下拉列表的选定值,但我无法让它工作。
下拉菜单不会将其显示为已选择的,它只是继续,好像没有选择任何内容。请帮我解决问题。
这是我的代码
import 'dart:convert';
import 'package:sqlliteapp/db_helper.dart';
import 'package:sqlliteapp/user_model.dart';
import 'package:http/http.dart' as http;
import 'package:flutter/material.dart';
class SqliteDropdown extends StatefulWidget {
@override
SqliteDropdownState createState() {
return new SqliteDropdownState();
}
}
class SqliteDropdownState extends State<SqliteDropdown> {
DatabaseHelper db = DatabaseHelper();
//Add data to db
_saveData() async {
UserModel user1 = UserModel(
"test",
"test",
"test@gmail.com",
"test",
);
UserModel user2 = UserModel(
"test1",
"test1",
"test1@gmail.com",
"test",
);
await db.saveData(user1);
await db.saveData(user2);
}
@override
void initState() {
super.initState();
_saveData();
}
UserModel _currentUser;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Fetching data from Sqlite DB - DropdownButton'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
mainAxisSize: MainAxisSize.max,
children: <Widget>[
FutureBuilder<List<UserModel>>(
future: db.getUserModelData(),
builder: (BuildContext context,
AsyncSnapshot<List<UserModel>> snapshot) {
if (!snapshot.hasData) return CircularProgressIndicator();
return DropdownButton<UserModel>(
items: snapshot.data
.map((user) => DropdownMenuItem<UserModel>(
child: Text(user.name),
value: user,
))
.toList(),
onChanged: (UserModel value) {
setState(() {
_currentUser = value;
});
},
isExpanded: true,
//value: _currentUser,
hint: Text('Select User'),
);
}),
SizedBox(height: 20.0),
_currentUser != null
? Text(
"Name: " +
_currentUser.name +
"\n Email: " +
_currentUser.email +
"\n Username: " +
_currentUser.username +
"\n Password: " +
_currentUser.password,
)
: Text("No User selected"),
],
),
),
);
}
}
下拉菜单不显示为选中的,它就像没有选中一样。请支持我解决问题
【问题讨论】:
-
您已评论 -
value: _currentUser,- 您将如何看待您看到的选定值。?