flutter - 将应用程序屏幕分为两半和/或分数时出现问题

标签 flutter dart flutter-layout

下面的代码是我的应用程序的许多页面之一。我正在尝试使用 LayoutBuilder 设置此页面,以便它像测验页面一样工作,下半部分/部分将容纳 3 到 4 个文本按钮,上半部分/部分将容纳问题并可能显示图片。 我做了一些研究,发现您可以使用 LayoutBuilder 将容器设置为屏幕的一半。然而,当我尝试用这段代码执行此操作时,我抛出了很多异常。所以我想知道是否有更好的方法将屏幕分成两半(或者可能是 1/4、1/4 和 1/2)以实现类似测验的布局。 感谢您的帮助!

quiz.dart

class Quiz extends StatelessWidget {
const Quiz({Key? key}) : super(key: key);

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Quiz'),
),
body: Column(
children: [
Align(alignment: Alignment.topCenter,
child: LayoutBuilder(
builder: (BuildContext context, BoxConstraints constraints) {
return Container(
height: constraints.maxHeight / 2,
// widthdouble.infinity,
);
},
)),
Align(alignment: Alignment.topCenter,
child: LayoutBuilder(
builder: (BuildContext context, BoxConstraints constraints) {
return Container(
height: constraints.maxHeight / 2,
// widthdouble.infinity,
color: const Color.fromRGBO(155, 205, 255, 0.8),
child: Column(children: [
/* TextButton(onPressed: onPressed, child: child),
TextButton(onPressed: onPressed, child: child),
TextButton(onPressed: onPressed, child: child), */
Text('Option A'),
Text('Option B'),
Text('Option C'),
],),
);
},
)),

],
));
}
}

最佳答案

您可以尝试将 LayoutBuilder 向上移动,以便可以对 Column 的子级使用约束:

enter image description here

class Quiz extends StatelessWidget {
  const Quiz({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('Quiz')),
      body: LayoutBuilder(
        builder: (BuildContext context, BoxConstraints constraints) {
          return Column(
            children: [
              Container(
                height: constraints.maxHeight / 2,
                color: Colors.green.shade300,
              ),
              Container(
                height: constraints.maxHeight / 2,
                color: Colors.blue.shade300,
              ),
            ],
          );
        },
      ),
    );
  }
}

关于flutter - 将应用程序屏幕分为两半和/或分数时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71244685/

相关文章:

sqlite - 不使用 Flutter 的 SQFlite 关闭数据库?

flutter - ListView恢复滚动位置

flutter - 在 index.html 中访问 --dart-define 环境变量

dart - Flutter 中的首字下沉字母

flutter - 垂直分隔线未显示

Flutter - 如何按比例将 View 居中(以乘数偏移为中心)

flutter - 当其聚焦时, flutter 更改GestureDetector内部的Container的颜色

list - 如何将 Dart 函数名称转换为字符串?

flutter - 如何将焦点固定在 Flutter 中的 ListView 项目上?

Flutter 全屏应用程序。摆脱Android应用程序底部的空白区域