Настройка дочерней спецификации вида сетки в соответствии с размером экрана

#layout #dart #flutter

#макет #dart #трепетание

Вопрос:

Я разрабатываю приложение, которое включает GridView, вот самая простая форма кода:

 return OrientationBuilder(builder: (context, orientation) {
  return RefreshIndicator(
    onRefresh: refreshList,
    child: new GridView.builder(
      itemCount: dergiler.length,
      gridDelegate: new SliverGridDelegateWithFixedCrossAxisCount(
          crossAxisCount: 2,
          mainAxisSpacing: 1.0,
          crossAxisSpacing: 1.0,
          childAspectRatio: 0.7),
      itemBuilder: (BuildContext context, int index) {
        return Container(
          alignment: Alignment.center,
          child: Dergielemet(dergiler[index], index),
        );
      },
    ),
  );
});
  

Когда я использую дочернюю спецификацию as как 0.7, я получаю то, что хочу. Вот изображение:

изображение)

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

изображение

Ответ №1:

используйте в качестве дочерней структуры что-то вроде этого

MediaQuery.of (context).size.height/980