FLUTTER: Как убрать фон из ячеек сетки? - PullRequest
1 голос
/ 19 января 2020

Я пытался поместить boxshadow в свои контейнеры внутри вида сетки, но тени находятся за пределами ячеек, и цвет фона ячеек отличается от цвета фона страницы. Я хочу, чтобы мои контейнеры были в виде сетки с тем же фоновым цветом и чистыми тенями для моего контейнера. Если я использую это вне gridview, это работает отлично. Это мой код:

Widget build(BuildContext context) {
return Scaffold(
  backgroundColor: Theme.of(context).backgroundColor,
  body: Center(
    child: FutureBuilder(
      future:
          Firestore.instance.collection('rooms').document(pincode).get(),
      builder: (BuildContext context, AsyncSnapshot snapshot) {
        if (snapshot.hasData) {
          nomines = snapshot.data['Nominés'];
          thequestion = snapshot.data['Question'].toString();
          return Column(children: <Widget>[
            Text(thequestion),
            Expanded(
              child: StreamBuilder<QuerySnapshot>(
                stream: Firestore.instance
                    .collection('rooms')
                    .document(pincode)
                    .collection('users')
                    .snapshots(),
                builder: (BuildContext context,
                    AsyncSnapshot<QuerySnapshot> snapshot) {
                  if (!snapshot.hasData)
                    return Text("Chargement....");
                  else {
                    return new GridView.count(
                        crossAxisCount: 2,
                        children: snapshot.data.documents
                            .map((DocumentSnapshot document) {
                          if (document['id'] == nomines[0] ||
                              document['id'] == nomines[1])
                            return Container(
                              child: InkWell(
                                onTap: () {
                                  vote(document['id']).then((a) {
                                    Navigator.push(
                                        context,
                                        MaterialPageRoute(
                                          builder: (context) =>
                                              Waitresults(),
                                        ));
                                  });
                                },
                                child: Container(
                                  decoration: BoxDecoration(
                                      border: Border.all(
                                          width: 2.0, color: Color(document['couleur'])),
                                      boxShadow: <BoxShadow>[
                                        BoxShadow(
                                            color: Color(document['couleur']),
                                            blurRadius: 0,
                                            offset: Offset(7, 3))
                                      ],
                                      shape: BoxShape.circle),
                                  child: OvalPic(document['photo'],
                                      document['couleur']),
                                ),
                              ),
                            );
                          else
                            return null;
                        }).toList()
                              ..removeWhere((el) => el == null));
                  }
                },
              ),
            )
          ]);
        } else
          return CircularProgressIndicator();
      },
    ),
  ),
);

}

1 Ответ

1 голос
/ 19 января 2020

Вы можете заключить gridView в container, а затем использовать свойство color в container, чтобы изменить цвет фона.

 Container(
    color : Colors.black,
    child : GridView.count(
         ..... 
    ),
  )
),
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...