Flutter:最小高度,扩展和 SingleChildScrollView?

标签 flutter flutter-layout

我不知道如何在 Flutter 中进行这种布局。我想要实现的是:

  • 我有一列,包含一个固定高度的子项(标题文本小部件)和两个扩展小部件。我正在使用扩展,因为我希望每个人共享剩余屏幕的一半。
  • 当方向更改为横向时,没有足够的空间正确显示展开的小部件的内容。所以我想要的是在这两个小部件上应用一个最小高度,并让它变得可滚动。

  • 我希望这是有道理的——我不知道如何实现这一点。我尝试了很多扩展、灵活、列、SingleChildScrollView、最小列轴大小等的组合,但我尝试的一切都会导致某种无限高度异常。这甚至可能吗?

    这是一些示例代码:以下工作正常。如何在两个占位符上实现滚动和最小高度?
    import 'package:flutter/material.dart';
    
    void main() => runApp(MyApp());
    
    class MyApp extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          home: MyHomePage(),
        );
      }
    }
    
    class MyHomePage extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          body: SafeArea(
            child: Column(
              children: <Widget>[
                Text("Title"),
                // I need to apply a minimum height on these two widgets,
                // and it should be scrollable if necessary:
                Expanded(
                  child: Placeholder(),
                ),
                Expanded(
                  child: Placeholder(),
                )
              ],
            ),
          ),
        );
      }
    }
    
    

    最佳答案

    这对我有用:

    import 'dart:math'; // for max function
    
    // Add the following around your column
    LayoutBuilder(
      builder: (BuildContext context, BoxConstraints constraints) {
        return SingleChildScrollView(
          child: ConstrainedBox(
            constraints: BoxConstraints.tightFor(height: max(500, constraints.maxHeight)),
            child: Column(), // your column
          ),
        );
      },
    );
    

    替换 500具有您想要的列的最小高度。

    关于Flutter:最小高度,扩展和 SingleChildScrollView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58582611/

    相关文章:

    flutter - 在 flutter 中带有渐变边框的轮廓透明按钮

    Flutter - 我想通过 onLongPress 选择卡片?

    android - 在我的 Flutter 应用程序中使用由 swagger 生成的 Dart codegn 提供的 WebServices

    ios - Flutter 在 Windows 上构建 IOS

    flutter - 我如何在 flutter 中使用颜色数组中的随机颜色(不是单色)

    dart - flutter 用户界面 : Absolute positioned element with fixed height and 100% width

    flutter - 堆叠在listview flutter 无限高度

    Flutter 无法从方法 'Future<dynamic>' 返回类型为 '_onBackPress' 的值,因为它的返回类型为 'Future<bool>'

    stream - Dart:流中的监听器永远不会触发 onError 函数

    flutter - 在dispose()方法内部使用Provider.of(context)调用方法会导致 "Looking up a deactivated widget'的祖先不安全。”