Flutter 方向错误的尺寸错误
Wrong size for wrong orientation in Flutter
我正在使用以下代码获取 widget
的大小:
@override
Widget build(BuildContext context) {
RenderBox renderBox = context.findRenderObject();
Size size = renderBox.size;
}
但是,当发生旋转时,它总是 returns 先前方向的大小(例如,如果它旋转到横向,它会给我纵向表示的大小,反之亦然)。是否有不同的方法来获取方向更改时小部件的大小?
大小在布局时确定,但您的 build
方法在此之前在构建时调用。但是,您的小部件的约束条件在构建时可用,并且大多数时候您只需要猜测您的尺寸将是多少。使用 LayoutBuilder
读取约束。
import 'package:flutter/material.dart';
void main() {
runApp(new MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
home: new MyHomePage(),
);
}
}
class MyHomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new Scaffold(
body: new LayoutBuilder(
builder: (BuildContext context, BoxConstraints constraints) {
return new Text(
'${constraints.maxWidth}x${constraints.maxHeight}',
style: Theme.of(context).textTheme.display3,
);
}
),
);
}
}
我正在使用以下代码获取 widget
的大小:
@override
Widget build(BuildContext context) {
RenderBox renderBox = context.findRenderObject();
Size size = renderBox.size;
}
但是,当发生旋转时,它总是 returns 先前方向的大小(例如,如果它旋转到横向,它会给我纵向表示的大小,反之亦然)。是否有不同的方法来获取方向更改时小部件的大小?
大小在布局时确定,但您的 build
方法在此之前在构建时调用。但是,您的小部件的约束条件在构建时可用,并且大多数时候您只需要猜测您的尺寸将是多少。使用 LayoutBuilder
读取约束。
import 'package:flutter/material.dart';
void main() {
runApp(new MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
home: new MyHomePage(),
);
}
}
class MyHomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new Scaffold(
body: new LayoutBuilder(
builder: (BuildContext context, BoxConstraints constraints) {
return new Text(
'${constraints.maxWidth}x${constraints.maxHeight}',
style: Theme.of(context).textTheme.display3,
);
}
),
);
}
}