所以我有這段代碼,它顯示了一張用 gif 和標題展開的卡片,所以我想讓它可以點擊,當我點擊它時,我會轉到指定的東西頁面。所以我想要做的是,這會在一個帶有一些 gif 的螢屏上產生,并且對于每個 gif 它都有一個名稱,我希望 cardView gif 是可點擊的。
import 'package:flutter/material.dart';
import 'package:vertical_card_pager/vertical_card_pager.dart';
import 'models/hero_model.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: const MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({Key? key}) : super(key: key);
@override
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
//List for agents and respective gif for each one.
final List<HeroModel> heros = [
HeroModel("JETT", "images/jett_valo.gif"),
HeroModel("KILLJOY", "images/killjoy_valo.gif"),
HeroModel("SAGE", "images/sage_valo.gif"),
HeroModel("SOVA", "images/sova_valo.gif"),
HeroModel("VIPER", "images/viper_valo.gif"),
HeroModel("RAZE", "images/raze_valo.gif"),
HeroModel("YORU", "images/yoru_valo.gif"),
HeroModel("BREACH", "images/breach_valo.gif"),
HeroModel("ASTRA", "images/astra_valo.gif"),
HeroModel("CYPHER", "images/cypher_valo.gif"),
HeroModel("OMEN", "images/omen_valo.gif"),
HeroModel("PHOENIX", "images/phoenix_valo.gif"),
HeroModel("SKYE", "images/skye_valo.gif"),
];
@override
//Head Logo
Widget build(BuildContext context) {
return Scaffold(
body: SafeArea(
child: Column(
children: [
SizedBox(
width: double.infinity,
height: 70,
child: Padding(
padding: const EdgeInsets.symmetric(vertical: 5),
child: Center(
child: Image.asset(
"images/logo.png",
fit: BoxFit.cover,
),
),
),
),
// CardView
Expanded(
child: VerticalCardPager(
titles: [for (var hero in heros) hero.title],
images: [
for (var hero in heros)
Hero(
tag: hero.title,
child: ClipRRect(
borderRadius: BorderRadius.circular(20.0),
child: Image.asset(
hero.image,
fit: BoxFit.cover,
),
),
),
],
textStyle:
const TextStyle(color: Colors.white, fontWeight: FontWeight.bold),
initialPage: 2,
align: ALIGN.CENTER,
))
],
)));
}
}
uj5u.com熱心網友回復:
使用回呼包裝您的小部件Inkwell并使用onTap回呼。
在列中,您不能使用它Expanded,Sizedbox因為它是孩子。嘗試洗掉Expanded.
InkWell(
onTap: () {
// TODO: add your function callback here
},
child: VerticalCardPager(
textStyle: const TextStyle(color: Colors.white, fontWeight: FontWeight.bold),
initialPage: 2,
align: ALIGN.CENTER,
titles: [for (var hero in heros) hero.title],
images: [
for (var hero in heros)
Hero(
tag: hero.title,
child: ClipRRect(
borderRadius: BorderRadius.circular(20.0),
child: Image.asset(
hero.image,
fit: BoxFit.cover,
),
),
),
],
),
)
uj5u.com熱心網友回復:
您可以使用 Listview.builder 進行串列,然后您可以管理和點擊特定專案。
Expanded(
child: ListView.builder(itemCount:heros.length,itemBuilder:(context,index){
return VerticalCardPager(
titles: hero[index].title,
images:
Hero(
tag: hero[index].title.title,
child: ClipRRect(
borderRadius: BorderRadius.circular(20.0),
child: Image.asset(
hero[index].title.image,
fit: BoxFit.cover,
),
),
),
textStyle:
const TextStyle(color: Colors.white, fontWeight: FontWeight.bold),
initialPage: 2,
align: ALIGN.CENTER,
)
})
)
uj5u.com熱心網友回復:
用GestureDetector包裹小部件撰寫代碼點擊 onTap
GestureDetector(onTap: (){},child:Expanded(
child: VerticalCardPager(
titles: [for (var hero in heros) hero.title],
images: [
for (var hero in heros)
Hero(
tag: hero.title,
child: ClipRRect(
borderRadius: BorderRadius.circular(20.0),
child: Image.asset(
hero.image,
fit: BoxFit.cover,
),
),
),
],
textStyle:
const TextStyle(color: Colors.white, fontWeight: FontWeight.bold),
initialPage: 2,
align: ALIGN.CENTER,
))),
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/515817.html
標籤:安卓扑镖按钮可点击
上一篇:HowtotriggerRShinyobserveEventwhenonespecifiedchoiceamongvarioususerchoicesisselected?
