flutter - 如何使每个网格图块可单击以将我带到 Flutter 中的新页面
问题描述
我需要以下代码的帮助...我创建了一个具有特定数量的图块的网格...我希望能够单独单击每个图块并在单击后打开一个新页面。我怎样才能在 android studio 中做到这一点?
class GridOne extends StatefulWidget {
@override
_GridOneState createState() => new _GridOneState();
}
class _GridOneState extends State<GridOne> {
@override
Widget build(BuildContext context) {
return new Scaffold(
body: GridView.count(
crossAxisCount: 6,
children: List.generate(
947,
(index) {
return Card(
elevation: 10.0,
color: Color(0xFF184946),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(20.0),
),
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Container(
color: Color(0xFF184946),
child: Center(
child: Text(
'$index',
style: TextStyle(fontSize: 18, color: Color(0xFFFCF8F8)),
),
),
),
),
);
},
),
),
);
}
解决方案
import 'package:flutter/material.dart';
class GridOne extends StatefulWidget {
@override
_GridOneState createState() => new _GridOneState();
}
class _GridOneState extends State<GridOne> {
@override
Widget build(BuildContext context) {
return new Scaffold(
body: GridView.count(
crossAxisCount: 6,
children: List.generate(
947,
(index) {
return RawMaterialButton(
onPressed: () {
/// Navigation code will come here
},
child: Card(
elevation: 10.0,
color: Color(0xFF184946),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(20.0),
),
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Container(
color: Color(0xFF184946),
child: Center(
child: Text(
'$index',
style: TextStyle(fontSize: 18, color: Color(0xFFFCF8F8)),
),
),
),
),
),
);
},
),
),
);
}
推荐阅读
- android - 在 JsonObject 中收到响应时,Retrofit 调用 onError 块
- python - GPIO python脚本不通过cron调用带有子进程的bash
- c# - 无法从 C# 中托管的 Powershell 会话导出证书
- css - 标签的 CSS 选择器
- excel - 运行此代码行时出错。请评论
- html - 单击浏览器的后退按钮时清除单选和复选框按钮状态
- powershell - PowerShell 扫描注册表对象并进行比较
- google-cloud-data-fusion - 如何在 Cloud Data Fusion 中合并多个具有相同结构的 CSV 文件?
- angular - npm-install 命令在 Angular 7 项目中不起作用
- python - 如何将单个数据框列转换为以列名作为键的每一行的字典?