Flutterのレイアウトにまだ問題があります。
今、4つのレイアウトで、3つのウィジェット間で利用可能なスペースを共有したいと考えています。幅は均等に共有されます(これは2つのExpanded
ウィジェットを使用して正常に動作します)が、高さも自動的に調整されるようにしたいwidget3.height == widget1.height + widget2.height
。 widget3
の方が大きい、欲しいwidget1
およびwidget2
を使用して高さを調整したり、その逆を行ったりします。
これはFlutterでも可能ですか?
IntrinsicHeight
を見てください。ルート行をラップすると、探している効果が得られます。
import 'package:flutter/material.Dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: Scaffold(
appBar: AppBar(title: Text('Rows & Columns')),
body: RowsAndColumns(),
),
);
}
}
class RowsAndColumns extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Padding(
padding: const EdgeInsets.only(top: 100.0),
child: IntrinsicHeight(
child: Row(crossAxisAlignment: CrossAxisAlignment.stretch, children: [
Expanded(
child: Column(children: [
Container(height: 120.0, color: Colors.yellow),
Container(height: 100.0, color: Colors.cyan),
]),
),
Expanded(child: Container(color: Colors.amber)),
]),
),
);
}
}
列のコンテナーの高さを調整すると、右側のコンテナーのサイズが一致するようにサイズ変更されます。
https://Gist.github.com/mjohnsullivan/c5b661d7b3b4ca00599e8ef87ff6ac61