У меня есть Textfield, и после ввода я хочу преобразовать виджет Textfield в простой Textwidget (например, введите ваше имя => отображает ваше имя).
Я попытался сделать это с помощью условного выражения в этом приведенный ниже код (это просто быстрый пример кода для отображения проблемы, я не хотел публиковать весь мой код):
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
debugShowCheckedModeBanner: false,
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
class MyHomePage extends StatefulWidget {
MyHomePage({Key key, this.title}) : super(key: key);
final String title;
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
final TextEditingController hello1 = TextEditingController();
int counter = 0;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
hello1.text == ''
? TextField(
controller: hello1, onSubmitted: (_) => print(hello1.text))
: Text(hello1.text),
RaisedButton(onPressed: () {
setState(() {
counter++;
});
})
],
),
),
);
}
}
Поэтому, когда я ввожу текст в текстовое поле и отправляю его, виджет будет не конвертировать в текстовый виджет. Если я не отображаю что-то еще на экране, поэтому я добавил RaisedButton и переменную counter.
Итак, что я могу сделать, чтобы немедленно преобразовать его в текстовый виджет. Не стесняйтесь указывать мне на некоторые фундаментальные логики c Я мог бы отсутствовать здесь, спасибо!