Dart 如何将ListView居中?
我有一个专栏,但问题是如果屏幕高度很小,就会出现错误: 底部溢出5.0像素Dart 如何将ListView居中?,dart,flutter,flutter-layout,Dart,Flutter,Flutter Layout,我有一个专栏,但问题是如果屏幕高度很小,就会出现错误: 底部溢出5.0像素 列( mainAxisAlignment:mainAxisAlignment.center, 儿童:[ CenterBoxText(), 尺寸箱(高度:1), 升起的按钮( child:Text('Example'), ), ], ), 我已尝试将列替换为列表视图,此停止错误。但现在大屏幕上的小部件是从顶部显示的,而不是在中间。因为ListView没有mainAxisAlignment:mainAxisAlignmen
列(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
CenterBoxText(),
尺寸箱(高度:1),
升起的按钮(
child:Text('Example'),
),
],
),
我已尝试将列
替换为列表视图
,此停止错误。但现在大屏幕上的小部件是从顶部显示的,而不是在中间。因为ListView
没有mainAxisAlignment:mainAxisAlignment.center
如何解决
谢谢 如果列在创建溢出时遇到问题,则可能是纵轴溢出。ListView允许在垂直轴上滚动,并允许溢出像素位于查看屏幕下方。这就是为什么ListView适合您而Column不适合您的原因。因为您需要列,所以只需要将列包装在可展开的容器中,以便列适合可用空间 下面是一个完整的示例:
import 'package:flutter/material.dart';
class ColumnTest extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Column(
children: <Widget>[
Expanded(
child: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
//CenterBoxText(),
SizedBox(height: 1),
RaisedButton(
child: Text('example'),
),
],
),
))
],
),
);
}
}
导入“包装:颤振/材料.省道”;
类ColumnTest扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
返回脚手架(
正文:专栏(
儿童:[
扩大(
儿童:中心(
子:列(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
//CenterBoxText(),
尺寸箱(高度:1),
升起的按钮(
child:Text('example'),
),
],
),
))
],
),
);
}
}
尝试使用SingleChildScrollView
小部件包装您的列
小部件,它将提供滚动功能。
像这样:
SingleChildScrollView(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
CenterBoxText(),
SizedBox(height: 1),
RaisedButton(
child: Text(‘Example’),
),
],
),
),
SingleChildScrollView(
子:列(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
CenterBoxText(),
尺寸箱(高度:1),
升起的按钮(
child:Text('Example'),
),
],
),
),
将列
替换为列表视图
在您的
ListView
-添加-shrinkWrap:true,
然后用Center
小部件包装您的ListView
。您到底想实现什么?是否将ListView始终放在屏幕的中心?还是以所有元素为中心的ListView?@Escobar感谢您的回复!我希望ListView
位于屏幕中央感谢您的回复!我不能使用列
,因为小屏幕尺寸上的像素溢出可以用ListView代码更新您的问题吗?我可以为您提供一个答案。只需将Column
替换为ListView
并删除mainAxisAlignment:mainAxisAlignment.center
SingleChildScrollView(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
CenterBoxText(),
SizedBox(height: 1),
RaisedButton(
child: Text(‘Example’),
),
],
),
),