У меня есть текстовое поле со значком в строке. Я хочу сохранить значение в текстовом поле и сказать, что я нажимаю на значок, чтобы подтвердить значение, отсутствующее на кнопке «Готово» на клавиатуре.
Что происходит здесь, после нажатия кнопки «Готово», чтобы закрыть клавиатуру, текст в текстовом поле исчезает.
, которое получается, когда щелчок по значку дает нулевое значение.
** пытался решить эту проблему, используя субъект поведения для устранения контроллера, но не работает, так как значение в текстовом поле остается там после нажатия на значок, поскольку контроллер больше не существует.
class ForumCard extends StatelessWidget {
final Forums choosentype;
final ForumServices forumServices;
final Firestore firestore = Firestore();
final TextEditingController _textF = TextEditingController();
ForumCard({Key key, @required this.choosentype, this.forumServices})
: super(key: key);
@override
Widget build(BuildContext context) {
final AuthService authService = Provider.of<AuthService>(context);
final user$ = authService.user.where((user) => user != null);
final commentslist = List.from(choosentype.comments);
return Container(
width: MediaQuery.of(context).size.width * 0.9,
child: Card(
elevation: 100,
color: Colors.white,
child: Center(
child: StreamBuilder<FirebaseUser>(
stream: user$,
builder: (context, snapshot) {
final currentUser = snapshot.data;
if (!snapshot.hasData) {
return Text("nooooooooodata");
}
return Column(
children: <Widget>[
StreamBuilder<String>(
stream: forumServices.text,
builder: (context, snapshot) {
if (!snapshot.hasData) {
return Container();
}
final text = snapshot.data;
return choosentype.type == "question"
? Row(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
crossAxisAlignment:
CrossAxisAlignment.start,
children: <Widget>[
Expanded(
child: TextField(
decoration: InputDecoration(
hintText: "Write a comment",
),
onSubmitted: (String text) {
forumServices.addtext(text);
// I am adding here in a stream was trying to eliminate controller but doesnot work as the value in the textfield remains there after click on the icon as there is no longer controller.
},
controller: _textF,
onEditingComplete: null,
),
),
IconButton(
icon: Icon(Icons.comment),
onPressed: () {
commentslist.add({
"0": currentUser.uid,
"1": currentUser.displayName,
"2": _textF.text,
});
print(commentslist);
Firestore.instance
.collection('forums')
.document(choosentype.uid)
.updateData(
{"comments": commentslist},
);
},
),
],
)