RowやColumnが画面全体に広がっているためCenterが効いていないためだと思います。
RowとColumnにmainAxisSize: MainAxisSize.min
を指定してあげれば、広がらなくなるので、中央になります。
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
home: Scaffold(
body: Center(
child: Row(
mainAxisSize: MainAxisSize.min,
children: [
Column(
mainAxisSize: MainAxisSize.min,
children: [
Container(color: Colors.blue, width: 100, height: 100),
Container(color: Colors.red, width: 100, height: 100),
],
),
Column(
mainAxisSize: MainAxisSize.min,
children: [
Container(color: Colors.green, width: 100, height: 100),
Container(color: Colors.yellow, width: 100, height: 100),
],
),
],
),
),
),
);
}
}
もしくは、RowとColumnにmainAxisAlignment: MainAxisAlignment.center
を指定して、RowやColumn内で位置を指定してあげても解決すると思います(この場合Centerウィジェットは不要です)
こちらの方が配置の仕方を色々指定できるのでよいかもしれません。
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
home: Scaffold(
body: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Container(color: Colors.blue, width: 100, height: 100),
Container(color: Colors.red, width: 100, height: 100),
],
),
Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Container(color: Colors.green, width: 100, height: 100),
Container(color: Colors.yellow, width: 100, height: 100),
],
),
],
),
),
);
}
}
Flutter基礎 – Column/Rowの色々な並べ方という記事が参考になると思います
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/21 06:24