Горизонтальная область просмотра была задана неограниченной высотой - PullRequest
0 голосов
/ 21 февраля 2020

Я хочу просмотреть Карусель под Столбцом в разделе 'body:', но получаю эту ошибку: Следующее утверждение было выдано во время executeResize ():

Горизонтальному окну просмотра присвоена неограниченная высота.

Окна просмотра расширяются по поперечной оси, чтобы заполнить их контейнер и ограничить их дочерние элементы, чтобы соответствовать их экстенту по поперечной оси. В этом случае горизонтальному окну просмотра было предоставлено неограниченное количество вертикального пространства для расширения. Соответствующий виджет, вызывающий ошибки, был:

Файл ListView: ///Users/ahmed/AndroidStudioProjects/flutter_app_service2/lib/screens/home/profile_list.dart: 27: 21 Когда было сгенерировано исключение, это было стек:

0 RenderViewport.performResize. (пакет: flutter / src / render / viewport.dart: 1289: 15)

1 RenderViewport.performResize (пакет: flutter / src / render / viewport.dart: 1301: 6)

2 RenderObject.layout (пакет: flutter / src / render / object.dart: 1746: 9)

3 RenderProxyBoxMixin.performLayout (пакет: flutter / src / render / proxy_box.dart: 110: 13)

4 RenderObject.layout (пакет: flutter / src / render / object.dart: 1767: 7)

... Следующий RenderObject обрабатывался при возникновении исключения: RenderViewport # d699b NEEDS -LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE ... требуется компоновка ... parentData: (можно использовать размер) ... ограничения: BoxConstraints (0.0 <= w <= 414.0, 0.0 <= h <= Infinity) ... size: MISSING ... axisDirection: right ... crossAxisDirection: down ... offset: ScrollPositionWithSingleContext # 209bd (offset: 0.0, диапазон: null..null, область просмотра: null, ScrollableState, BouncingScrollPhysics, IdleScrollActivity # ac774, ScrollDirection.idle) ... якорь: 0.0 RenderObject: Ren derViewport # d699b NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE необходимо создать ограничения parentData: (можно использовать размер): BoxConstraints (0.0 <= w <= 414.0, 0.0 <= h <= Infinity) размер: MISSING axisDirection: right crossAxisDirection: смещение вниз: ScrollPositionWithSingleContext # 209bd (смещение: 0.0, диапазон: null..null, область просмотра: null, ScrollableState, BouncingScrollPhysics, IdleScrollActivity # ac774, ScrollDirection.idle) привязка: 0,0 ... center потомок: NEDSNSDSNSID -LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE ... parentData: paintOffset = Offset (0.0, 0.0) ... ограничения: MISSING ... geometry: null ... padding: EdgeInsets.zero ... textDirection: ltr ... child: RenderSliverList # b683f NEEDS-LAYOUT NEEDS-PAINT ... parentData: paintOffset = Offset (0.0, 0.0) ... ограничения: MISSING ... geometry: null ... нет текущих текущих живых детей </p>

Вот мой код в доме:

body: Column(
      children: <Widget>[
        ProfileList(),
      ],
    ),

, а вот ProfileList, который указывает на ProfileCarousel:

class _ProfileListState extends State<ProfileList> {
@override
Widget build(BuildContext context) {
final profiles = Provider.of<List<Profile>>(context);

profiles.forEach((profile) {
  print(profile.firstName);
  print(profile.lastName);
  print(profile.country);
  print(profile.city);
  print(profile.imgUrl);
});

return ListView.builder(
  scrollDirection: Axis.horizontal,
  itemBuilder: (context, index) {

  },
  itemCount: profiles.length,
);
}
}

вот ProfileCar ousel:

class ProfileCarousel extends StatelessWidget {
final Profile profile;
ProfileCarousel({this.profile});
@override
Widget build(BuildContext context) {
return Container(
  margin: EdgeInsets.all(10.0),
  width: 210.0,
  child: Stack(
    alignment: Alignment.topCenter,
    children: <Widget>[
      Container(
        decoration: BoxDecoration(
          color: Colors.white,
          borderRadius: BorderRadius.circular(10.0),
          boxShadow: [
            BoxShadow(
              color: Colors.black26,
              offset: Offset(0.0, 2.0),
              blurRadius: 6.0,
            ),
          ],
        ),
        child: Stack(
          children: <Widget>[
            Hero(
              tag: profile.imgUrl,
              child: ClipRRect(
                borderRadius: BorderRadius.circular(10.0),
                child: Image(
                  height: 180.0,
                  width: 180.0,
                  image: NetworkImage(profile.imgUrl),

                ),
              ),
            ),
            Positioned(
              left: 10.0,
              bottom: 10.0,
              child: Column(
                crossAxisAlignment: CrossAxisAlignment.start,
                children: <Widget>[
                  Text(
                    profile.firstName,
                    style: TextStyle(
                        fontWeight: FontWeight.w600,
                        fontSize: 24.0,
                        letterSpacing: 1.2,
                        color: Colors.white),
                  ),
                  Row(
                    children: <Widget>[
                      Icon(
                        Icons.arrow_upward,
                        size: 10.0,
                        color: Colors.white,
                      ),
                      SizedBox(width: 5.0),
                      Text(
                        profile.city,
                        style: TextStyle(color: Colors.white),
                      ),
                    ],
                  )
                ],
              ),
            )
          ],
        ),
      )
    ],
  ),
);
}
}

1 Ответ

0 голосов
/ 21 февраля 2020

Мне удалось найти решение для этого, просто обернув ProfileList с виджетом SizedBox и присвоив ему правильную высоту:

body: Column(
      children: <Widget>[
        SizedBox(height: 500, child: ProfileList()),
      ],
    ),
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...