#flutter #dart
#flutter #dart
Вопрос:
Это страница моего приложения. Я пытаюсь выделить место для размещения виджетов, а затем боковой панели справа.
import 'package:flutter/material.dart';
class Looper extends StatefulWidget {
@override
_LooperState createState() => _LooperState();
}
class _LooperState extends State<Looper> {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Row(children: [
Flexible(
flex: 21,
child: FittedBox(
fit: BoxFit.cover,
child: ListView(
scrollDirection: Axis.horizontal,
children: [
],
),
)
),
Flexible(
child: Container(),
flex: 2,
),
]));
}
}
Но я получаю:
Horizontal viewport was given unbounded width.
Я пробовал несколько BoxFit
подобных fitHeight
, fitWidth
но ни один из них не работает. Изменение FittedBox
на a Container
дает ту же ошибку, но для height
;
Я вроде понимаю ошибку. ListView не получает границ, откуда расти. Однако, как я полагаю, каркас уже должен обеспечивать эти границы. Мне не нужно, чтобы все помещалось внутри a Container
с шириной и размером экрана телефона.
Ответ №1:
В таких случаях вы можете использовать термоусадочную пленку. Попробуйте это.
Row(children: [
Flexible(
flex: 1,
child: ListView(
shrinkWrap: true,
scrollDirection: Axis.horizontal,
children: [
Text('Shrink wrap is usefull.')
],
)
),
Flexible(
child: Container(),
flex: 1,
),
])