当我开始考虑这两个组成部分时,我发现自己在争论为什么我应该一个而不是另一个。我想到了一些问题:
Container和SizedBox有什么区别?
我知道Container可以具有其他参数,例如padding或装饰,但是如果我不使用这些参数,为什么我应该使用SizedBox而不是Container?
它们之间有性能差异吗?
这是输出:
TextButton,我得到了两个按钮之间的空间Expanded小部件,ScrollChildView则不起作用TextButton.任何人都知道或对此有任何想法?
import "package:flutter/material.dart";
import 'package:audioplayers/audio_cache.dart';
class Account extends StatefulWidget {
Account({Key key}) : super(key: key);
@override
_AccountState createState() => _AccountState();
}
class _AccountState extends State<Account> {
@override
Widget build(BuildContext context) {
return Scaffold(
body: SafeArea(
child: SingleChildScrollView(
child: Stack(
children: [
Container(
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
TextButton(
child: Container(
child: Text(
'One',
style: TextStyle(color: Colors.white, fontSize: 10),
),
),
style: ButtonStyle(
backgroundColor:
MaterialStateProperty.all<Color>(Colors.red), …Run Code Online (Sandbox Code Playgroud) 在下面的布局中,我希望按钮能够在屏幕上增长到尽可能宽,直至达到最大宽度。我尝试了以下方法,但不起作用(按钮始终尽可能宽):
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: SafeArea(
child: Center(
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
TextFormField(),
TextFormField(),
ConstrainedBox(
constraints: BoxConstraints(maxWidth: 200),
child: RaisedButton(child: Text("button"), onPressed: () {}),
),
],
),
),
),
),
);
}
}
Run Code Online (Sandbox Code Playgroud)
为了扩展我正在寻找的布局:按钮的宽度必须与以下两个数量中较小的一个相同:1)屏幕的宽度,2)给定的固定最大宽度。
示例场景:
A) 屏幕宽度为 1000 像素,给定的固定最大宽度为 600 像素,则按钮宽度为 600 像素。
B) 屏幕宽度为 400 像素,并且给定的固定最大宽度为 600 像素,则按钮宽度将为 400 像素。