Как решить прокрутку в виде списка, когда gridview в детстве? - PullRequest
0 голосов
/ 11 декабря 2018

Как решить проблему с прокруткой в ​​макете флаттера при добавлении вида сетки внутри списка.
в java android studio мы используем NestedScrollView для решения этого типа проблемы
Какое решение для трепетания?
Мне нужно продолжить прокрутку без каких-либо проблем с просмотром списка с помощью настраиваемого представления и просмотра сетки.
Теперьтогда gridview позволяет только прокручивать gridview
, если я прокручиваю сетку, то верхнее изображение не прокручивается. Как решить эту проблему?

body: 
    ListView(
  children: <Widget>[
    new Image.network("https://www.gizbot.com/img/2013/11/23-weekend-deals-top-10-latest-smartphones.jpg"),
    Container(
    height: 300.0,
    child: GridView.count(
      crossAxisCount: 3,
      childAspectRatio: .6,
      children: _list.map((p) => ProductManagment(p)).toList(),
    ),
  ) 
  ],
)

enter image description here

После добавления ответа @deniss enter image description here

РЕШЕНО
enter image description here

1 Ответ

0 голосов
/ 11 декабря 2018

Вместо использования ListView вы должны использовать Column Widget, как показано ниже.

    body: 
        Column(
      children: <Widget>[
        Container (
         height: 150.0, // Set as you want
        child: Image.network("https://www.gizbot.com/img/2013/11/23-weekend-deals-top-10-latest-smartphones.jpg")),
        Container(
        height: 300.0,
        child: GridView.count(
          crossAxisCount: 3,
          childAspectRatio: .6,
          children: _list.map((p) => ProductManagment(p)).toList(),
        ),
      ) 
      ],
    )

Because of `GridView` itself has scroll effect.

РЕДАКТИРОВАНИЕ:

Scaffold(
        appBar: AppBar(
          title: Text(widget.title),
        ),
        body: Container(
          child: ListView(
            children: <Widget>[
              Column(
                children: <Widget>[
                  Container(
                    height: 200,
                    child: Image.network(
                        "https://www.gizbot.com/img/2013/11/23-weekend-deals-top-10-latest-smartphones.jpg"),
                  ),
                  ConstrainedBox(
                    constraints: BoxConstraints(
                      minHeight: 80, // Set as you want or you can remove it also.
                      maxHeight: double.infinity,
                    ),
                    child: Container(
                      child: GridView.count(
                        crossAxisCount: 3,
                        shrinkWrap: true,
                        scrollDirection: Axis.vertical,
                        physics: NeverScrollableScrollPhysics(),
                        childAspectRatio: .6,
                        children: _list.map((p) => ProductManagment(p)).toList(),
                      ),
                    ),
                  )
                ],
              ),
            ],
          ),
        ));

Вы должны использовать ConstrainedBox с набором maxHeight: double.infinity и GridView.count набором shrinkWrap: true,.и удалите контейнер высотой 300.

Также, если вы хотите изменить

 Container(
                    height: 200,
                    child: Image.network(
                        "https://www.gizbot.com/img/2013/11/23-weekend-deals-top-10-latest-smartphones.jpg"),
                  ),

на Just

 Image.network("https://www.gizbot.com/img/2013/11/23-weekend-deals-top-10-latest-smartphones.jpg")

Чем вы можете изменить его.

...