我在Flutter中遇到了一个问题。我是一个初学者,我认为这是很简单的问题来解决。我认为问题是卡不能动态适应。
我很抱歉拼写错误,但我写的谷歌翻译!当我试图在home overview的视频中显示主题和描述时,用户从输入中插入主题和描述。
我是一个意大利男孩谁已经非常接近编程在Flutter和我开始了这门课程。你是我唯一能称呼的人。我会给任何能解决这个“问题”的人一份玛格丽塔披萨!!!
widget assegonocard只是一个由输入获取动态数据的widget。
android studio返回给我的错误如下:
i/flatter(18690):在performresize()期间抛出了以下Assert:
i/flatter(18690):垂直视口被赋予无限高。
i/flatter(18690):视口沿滚动方向展开以填充其容器
i/flatter(18690):视口被赋予了无限的垂直空间来扩展。这种情况
i/flatter(18690):通常发生在一个可滚动小部件嵌套在另一个可滚动小部件中时。
i/flatter(18690):如果这个小部件总是嵌套在可滚动的小部件中,那么就不需要使用视口,因为
我/弗利特(18690):总会有足够的垂直空间给孩子们。在这种情况下,请考虑使用列
i/Flutter(18690):取而代之。否则,请考虑使用“shrinkwrap”属性(或shrinkwrappingviewport)调整大小
i/flatter(18690):视口的高度与子视口的高度之和。
以下代码涉及main.dart文件、概述和作业(listview.builder所在的位置)。其他文件中的代码与视频课程中的代码相同:
//MAIN.DART
import 'package:flutter/material.dart';
import 'panoramica.dart';
import './assegno/gestione_assegno.dart';
void main() => runApp(MyApp());
class MyApp extends StatefulWidget {
@override
State<StatefulWidget> createState() {
return _MyAppState();
}
}
class _MyAppState extends State<MyApp> {
final List<Map<String, dynamic>> _assegno = [];
void _aggiungiAssegno(Map<String, dynamic> assegno) {
setState(() {
_assegno.add(assegno);
});
print(_assegno);
}
void _aggiornaAssegno(int index, Map<String, dynamic> assegno) {
setState(() {
_assegno[index] = assegno;
});
}
void _eliminaAssegno(int index) {
setState(() {
_assegno.removeAt(index);
});
}
@override
Widget build(BuildContext context) {
return MaterialApp(
theme: ThemeData(
primarySwatch: Colors.blue,
buttonColor: Colors.blue,
accentColor: Colors.blue,
),
//home: Panoramica(),
routes: {
'/': (BuildContext context) => Panoramica(_assegno),
'/gestioneassegno': (BuildContext context) => GestioneAssegno(_aggiungiAssegno, _aggiornaAssegno, _eliminaAssegno, _assegno),
},
onGenerateRoute: (RouteSettings settings) {
final List<String> pathElements = settings.name.split('/');
if (pathElements[0] != '') {
return null;
}
if (pathElements[1] == 'assegno') {
final int index = int.parse(pathElements[2]);
return MaterialPageRoute<bool>(
builder: (BuildContext context) => Panoramica(
_assegno[index]['materia'],
),
);
}
return null;
},
onUnknownRoute: (RouteSettings settings) {
return MaterialPageRoute(
builder: (BuildContext context) => Panoramica(_assegno ));
},
);
}
}
//OVERVIEW
import 'package:flutter/material.dart';
import './assegno/assegno.dart';
import 'drawer.dart';
// import 'eventi.dart';
class Panoramica extends StatelessWidget {
final List<Map<String, dynamic>> assegno;
Panoramica(this.assegno);
@override
Widget build(BuildContext context) {
return Scaffold(
drawer: Drawer(child: DrawerWidget()),
appBar: AppBar(
title: Text('Panoramica'),
),
body: Assegno(assegno),
//Eventi()
);
}
}
// HOMEWORK
import 'package:flutter/material.dart';
import 'assegno_card.dart';
class Assegno extends StatelessWidget {
final List<Map<String, dynamic>> assegno;
Assegno(this.assegno);
Widget _buildAssegnoList(BuildContext context) {
Widget assegnoCard;
if (assegno.length > 0) {
assegnoCard = ListView.builder(
itemBuilder: (BuildContext context, int index) =>
AssegnoCard(assegno[index], index),
itemCount: assegno.length,
);
} else {
assegnoCard = Container(
child: Card(
child: Column(
children: <Widget>[
ListTile(
title: Text('Assegno'),
leading: Icon(Icons.book),
),
Text('Non è inserito nessun assegno, aggiungerne uno'),
ButtonTheme.bar(
child: ButtonBar(
children: <Widget>[
FlatButton(
child: Text('Aggiungi assegno'),
onPressed: () {
Navigator.pushReplacementNamed(
context, '/gestioneassegno');
},
),
Icon(Icons.note_add, color: Colors.blue,)
],
),
),
],
),
),
);
}
return assegnoCard;
}
@override
Widget build(BuildContext context) {
return Column(
children: <Widget>[
Card(
child: _buildAssegnoList(context)
)
],
);
}
}
1条答案
按热度按时间w8f9ii691#
这个
build
assegno的函数应具有Flexible
或者一个Expanded
其中的小部件如下: