Flutter SingleChildScrollView не будет прокручиваться - PullRequest
0 голосов
/ 25 марта 2020

У меня не получается прокрутить экран. Я попробовал несколько вариантов следующего кода, но я не смог заставить его работать. Я также попробовал это с ListView, который тоже не очень хорошо работал. По общему признанию, я не пытался устранить неполадки ListView очень долго, потому что я предполагал, что проблема была вызвана чем-то другим. Я посмотрел на SO и увидел несколько вопросов об этой топике c, и они помогли мне решить некоторые проблемы, но я не могу заставить ее работать. Я не получаю никаких сообщений об ошибках или чего-либо, мой экран просто не прокручивается. Ниже вы увидите общую схему моего кода. Что я делаю не так?

class _TripPackagesState extends State<TripPackages> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Stack(
        children: <Widget>[
          Container(
            child: Padding(
              padding: EdgeInsets.symmetric(horizontal: 20.0),
              child: Row(
                mainAxisAlignment: MainAxisAlignment.spaceBetween,
                children: <Widget>[
                  Text(...),
                  GestureDetector(...),
                ],
              ),
            ),
          ),
          Container(
            margin: EdgeInsets.only(top: 1.0),
            child: SingleChildScrollView(
              child: StreamBuilder<QuerySnapshot>(
                stream:
                    Firestore.instance.collection('trip_package').snapshots(),
                builder: (BuildContext context,
                    AsyncSnapshot<QuerySnapshot> docSnapshot) {
                  if (!docSnapshot.hasData) return const Text('Loading...');
                  final int docCount = docSnapshot.data.documents.length;
                  return GridView.builder(
                    shrinkWrap: true,
                    scrollDirection: Axis.vertical,
                    itemCount: docCount,
                    itemBuilder: (_, int index) {
                      DocumentSnapshot document =
                          docSnapshot.data.documents[index];
                      return GestureDetector(
                        child: Container(
                          margin: EdgeInsets.all(3.0),
                          child: Column(
                            mainAxisAlignment: MainAxisAlignment.center,
                            children: <Widget>[
                              Row(...),
                              Row(...),
                            ],
                          ),
                        ),
                      );
                    },
                    gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(...),
                  );
                },
              ),
            ),
          ),
        ],
      ),
    );
  }
}

1 Ответ

1 голос
/ 25 марта 2020

Попробуйте использовать primary: false в вашем GridView.builder

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...