Я немного отредактировал твой код.Но это не сработало .Пожалуйста, ознакомьтесь с кодом ниже.Я постараюсь объяснить мое понимание под кодом.
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
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 GlobalKey<FormState> _formKey = GlobalKey<FormState>();
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text("What is this new classroom?"),
SizedBox(
height: 8.0,
),
Expanded(
child: Form(
key: _formKey,
child: Column(children: <Widget>[
Container(
padding: EdgeInsets.symmetric(vertical: 8.0),
child: TextFormField(
decoration: InputDecoration(
border: OutlineInputBorder(),
labelText: "Classroom Name",
hintText: "What's name of the new classroom?",
),
)),
SizedBox(
height: 8.0,
),
Expanded(
child: Container(
padding: EdgeInsets.symmetric(vertical: 8.0),
child: TextFormField(
maxLines: null,
decoration: InputDecoration(
border: OutlineInputBorder(),
labelText: "Description",
hintText: "Description of the new classroom",
),
),
),
),
]),
)),
],
),
),
);
}
}
Я проверил вид с вашим кодом.TextField
внутри TextFormField
не занимает остальную часть экрана.Поэтому я отредактировал, чтобы иметь TextField
, чтобы остальная часть экрана.Код выше делает это.Смотрите проверенный вид
Но есть InputDecorator
(который является дочерним для нашего TextField), который рисует границу.В нашем случае она рисует граничную линию на основе содержимого.
Возможные обходные пути могут быть:
maxLines = null
, которые увеличат TextField
как группы содержимого.Но первоначальный вид будет одной строкой. - Дайте фиксированный
maxLines
(как 10 или 20), который может выглядеть как занимающий экран.Но он не динамический (не изменяется в зависимости от размера экрана / ориентации экрана)