Flutter Widget 之LayoutBuilder

2,627 阅读1分钟

一个你曾经自己正在编写一个构造方法,希望在决定它的外观之前能知道你的widget有多大?

那么LayoutBuilder可以帮助你。

class HomeScreen extends StatelessWidget {
    @override
    Widget build(BuildContext context) {
        return LayoutBuilder(
            builder: (context, contraints){},
        );
    }
}

它的构造器函数具有构建上下文和传入框约束的参数~

这些是widget的有效宽度和高度的范围。

你的构建逻辑可以检查这些约束,然后对如何构建自己作出明确的决策。

class HomeScreen extends StatelessWidget {
    @override
    Widget build(BuildContext context) {
        return LayoutBuilder(
            builder: (context, contraints){
                if (contraints.maxWidth < 600) {
                    return MyOneColumnLayout();
                } else {
                    return MyTwoColumnLayout();
                }
            },
        );
    }
}

如果想了解有关LayoutBuilder的内容,或者关于Flutter的其他功能,请访问flutter.io

原文翻译自视频:视频地址