Flutter don';不要让Flex视图在屏幕大小调整后调整大小
我正在使用FlatterWeb创建我的新站点。我正在使用灵活的小部件,但不让它工作后,一些浏览器尺寸。i、 e.在一些浏览器维度之后,此Flex视图停止工作。怎么做 下面是我的主页Flutter don';不要让Flex视图在屏幕大小调整后调整大小,flutter,flutter-layout,flutter-web,Flutter,Flutter Layout,Flutter Web,我正在使用FlatterWeb创建我的新站点。我正在使用灵活的小部件,但不让它工作后,一些浏览器尺寸。i、 e.在一些浏览器维度之后,此Flex视图停止工作。怎么做 下面是我的主页 import 'package:flutter_web/material.dart'; class HomePage extends StatefulWidget { @override _HomePageState createState() => _HomePageState(); } clas
import 'package:flutter_web/material.dart';
class HomePage extends StatefulWidget {
@override
_HomePageState createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Column(
children: <Widget>[
Flexible(
flex: 1,
fit: FlexFit.tight,
child: Container(
height: MediaQuery.of(context).size.height * 0.20,
child: Padding(
padding: EdgeInsets.only(
left: MediaQuery.of(context).size.width*0.20,
),
child: Row(
children: <Widget>[
Icon(IconData(58819, fontFamily: 'MaterialIcons'), color: Colors.red), // apps icon
Text("mysite", style: TextStyle(fontWeight: FontWeight.bold, fontSize: 30),)
],
),
),
),
),
Flexible(
flex: 7,
fit: FlexFit.tight,
child: Container(
color: Colors.purple,
child: Padding(
padding: EdgeInsets.only(
left: MediaQuery.of(context).size.width*0.20,
),
child: Row(
children: <Widget>[
ClipRRect(
borderRadius: BorderRadius.circular(10),
child: Container(
child: Text("Word to PDF"),
),
),
],
),
),
),
),
Flexible(
flex: 3,
fit: FlexFit.tight,
child: Container(
height: MediaQuery.of(context).size.height * 0.30,
color: Colors.green,
),
),
],
)
);
}
}
import'包装:flatter_web/material.dart';
类主页扩展了StatefulWidget{
@凌驾
_HomePageState createState()=>\u HomePageState();
}
类_HomePageState扩展状态{
@凌驾
小部件构建(构建上下文){
返回脚手架(
正文:专栏(
儿童:[
灵活的(
弹性:1,
适合:FlexFit.tight,
子:容器(
高度:MediaQuery.of(上下文).size.height*0.20,
孩子:填充(
填充:仅限边缘设置(
左:MediaQuery.of(context).size.width*0.20,
),
孩子:排(
儿童:[
图标(Iconda(58819,fontFamily:'MaterialIcons'),颜色:Colors.red),//应用程序图标
文本(“mysite”,样式:TextStyle(fontWeight:fontWeight.bold,fontSize:30)
],
),
),
),
),
灵活的(
弹性:7,
适合:FlexFit.tight,
子:容器(
颜色:颜色,紫色,
孩子:填充(
填充:仅限边缘设置(
左:MediaQuery.of(context).size.width*0.20,
),
孩子:排(
儿童:[
ClipRRect(
边界半径:边界半径。圆形(10),
子:容器(
子:文本(“Word到PDF”),
),
),
],
),
),
),
),
灵活的(
弹性:3,
适合:FlexFit.tight,
子:容器(
高度:MediaQuery.of(上下文).size.height*0.30,
颜色:颜色。绿色,
),
),
],
)
);
}
}
应用flex值后,可以使用LayoutBuilder
计算高度。如果生成的高度满足约束,则继续使用flex。如果没有,请使用SizedBox
以下是一个例子:
void main(){
runApp(材料应用程序)(
家:脚手架(
主体:LayoutBuilder(生成器:(上下文、约束){
最终最小高度=150.0;
//1是小部件的弹性值
//6是列中所有弹性值的总和
最终flexHeight=1/6*constraints.maxHeight;
返回列(
儿童:[
灵活的(
弹性:3,
子:容器(颜色:Colors.red),
),
灵活的(
弹性:2,
子容器(颜色:Colors.green),
),
如果(挠曲高度>最小高度)
灵活的(
弹性:1,
子项:getConstrainedContainer(),
),
如果(弯曲高度