Как просмотреть сетку onClick перейдите на различные части экрана в Flutter

#flutter #listview #dart #gridview #onclick

Вопрос:

Я пытаюсь в течение долгих дней установить вид сетки на экране, нажмите «прослушиватель», перейдите к различным вариантам экрана, но я не могу установить. я использовал класс модели, используя добавленные данные из gridview. пожалуйста, помогите мне в моей проблеме, я новичок в flutter через пару недель, и здесь прилагается мой код для вашей справки, и, пожалуйста, решите отредактировать мой код .

 import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';

class GridDashboard extends StatelessWidget {
  Items item1 = new Items(
      title: "Calendar",
      subtitle: "March, Wednesday",
      event: "3 Events",
      img: "assets/calendar.png");

  Items item2 = new Items(
    title: "Groceries",
    subtitle: "Bocali, Apple",
    event: "4 Items",
    img: "assets/food.png",
  );
  Items item3 = new Items(
    title: "Locations",
    subtitle: "Lucy Mao going to Office",
    event: "",
    img: "assets/map.png",
  );
  Items item4 = new Items(
    title: "Activity",
    subtitle: "Rose favirited your Post",
    event: "",
    img: "assets/festival.png",
  );
  Items item5 = new Items(
    title: "To do",
    subtitle: "Homework, Design",
    event: "4 Items",
    img: "assets/todo.png",
  );
  Items item6 = new Items(
    title: "Settings",
    subtitle: "",
    event: "2 Items",
    img: "assets/setting.png",
  );

  @override
  Widget build(BuildContext context) {
    List<Items> myList = [item1, item2, item3, item4, item5, item6];
    var color = 0xff453658;
    return Flexible(
      child: GridView.count(
        childAspectRatio: 1.0,
        padding: EdgeInsets.only(left: 16, right: 16),
        crossAxisCount: 2,
        crossAxisSpacing: 18,
        mainAxisSpacing: 18,
        children: myList.map((data) {
          return Container(
            decoration: BoxDecoration(
              color: Color(color),
              borderRadius: BorderRadius.circular(10),
            ),
            child: Column(
              mainAxisAlignment: MainAxisAlignment.center,
              children: <Widget>[
                Image.asset(data.img, width: 42),
                SizedBox(height: 14),
                Text(
                  data.title,
                  style: GoogleFonts.openSans(
                    textStyle: TextStyle(
                      color: Colors.white,
                      fontSize: 16,
                      fontWeight: FontWeight.w600,
                    ),
                  ),
                ),
                SizedBox(height: 8),
                Text(
                  data.subtitle,
                  style: GoogleFonts.openSans(
                    textStyle: TextStyle(
                      color: Colors.white38,
                      fontSize: 10,
                      fontWeight: FontWeight.w600,
                    ),
                  ),
                ),
                SizedBox(height: 14),
                Text(
                  data.event,
                  style: GoogleFonts.openSans(
                    textStyle: TextStyle(
                      color: Colors.white70,
                      fontSize: 11,
                      fontWeight: FontWeight.w600,
                    ),
                  ),
                ),
              ],
            ),
          );
        }).toList(),
      ),
    );
  }
}

class Items {
  String title;
  String subtitle;
  String event;
  String img;
  Items({this.title, this.subtitle, this.event, this.img});
}
 

Комментарии:

1. вам нужны GestureDetector виджеты или InkWell виджеты — подробнее здесь: flutter.dev/документы/кулинарная книга/навигация

2. как добавить и в каком месте добавить. я новичок в flutter всего 3 недели. пожалуйста, отредактируйте мой код, пожалуйста.

3. проверьте жесты (и в cookbook целом тоже)

4. Все в порядке, чувак. но мой код другой . какое место я поставил?

5. Поместите чернильницу в контейнер, возвращаемый gridview, и запишите функцию навигации в onTap, и вы можете использовать if/else или переключиться, или вы можете добавить номер страницы в объект «Элементы», на который вы хотите перейти и направить соответственно. Вы можете создать динамическую страницу, чтобы вы могли просто передать имя элемента в качестве параметров при отправке пользователя на следующую страницу, и следующая страница будет отображаться в соответствии с любым переданным вами элементом.