Не уверен, что это то, что вы хотите. Но, основываясь на вашем утверждении, я думаю, что вы ищете макет с двумя столбцами, как в здесь и как показано ниже на рисунке.
Ниже приведен код для того же. Вы можете настроить значение изгиба в виджете «Расширение», чтобы получить необходимое соотношение ширины экрана. но если вы хотите отрегулировать ширину каждого столбца, например, используя ручку перетаскивания, то этого будет недостаточно.
import 'package:flutter/material.dart';
class FullHeightDemo extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
child: Row(
children: <Widget>[
Expanded(
flex: 4,
child: Container(
color: Colors.red,
child: Center(
child: Text(
'Column-1',
style:
TextStyle(fontWeight: FontWeight.bold, color: Colors.black),
),
),
),
),
Expanded(
flex: 1,
child: Container(
child: Container(
color: Colors.teal,
child: Center(
child: Text(
'Column-2',
style: TextStyle(
fontWeight: FontWeight.bold, color: Colors.black),
),
),
),
),
)
],
));
}
}
Указание высоты с помощью MediaQuery внутри виджета с прокруткой может помочь
Следующий код размещает столбцы внутри виджета SingleChildScrollableView
и указывает высоту контейнера на основе MediaQuery
для достижения того же самого. Поможет ли это? LayoutBuilder
только для того, чтобы показать, что использование высоты из его ограничений также может привести к ошибке, поскольку в этом случае его высота также равна infinite
.
import 'package:flutter/material.dart';
class FullHeightDemo extends StatelessWidget {
@override
Widget build(BuildContext context) {
return SingleChildScrollView(
child: LayoutBuilder(
builder: (context, constraints) {
var size = MediaQuery.of(context).size;
return Container(
child: Row(
children: <Widget>[
Container(
height: size.height,
// height: constraints.maxHeight,
width: constraints.maxWidth / 2,
color: Colors.red,
child: Center(
child: Text(
'Column 1',
style: TextStyle(
fontWeight: FontWeight.bold,
color: Colors.black,
),
),
),
),
Container(
color: Colors.green,
height: size.height,
// height: constraints.maxHeight,
width: constraints.maxWidth / 2,
child: Center(
child: Text(
'Column 2',
style: TextStyle(
fontWeight: FontWeight.bold, color: Colors.black),
),
),
)
],
),
);
},
),
);
}
}