【发布时间】:2020-05-05 17:36:52
【问题描述】:
我有一个 GridView,我想在 gridview 滚动结束后添加一个横幅广告。 BannerAd 是从依赖项https://github.com/kmcgill88/admob_flutter 中调用的。 GridView的代码如下
Widget build(BuildContext context) {
SystemChrome.setEnabledSystemUIOverlays([]);
return WillPopScope(
onWillPop: () async {
return true;
},
child: Scaffold(
body: Container(
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [const Color(0xFFFEFEFE), const Color(0xFFFEFEFE)],
begin: Alignment.centerLeft,
end: Alignment.centerRight,
),
),
child: Stack(children: <Widget>[
Text(
"Daily Tasks",
style: TextStyle(
fontFamily: "Netflix",
fontWeight: FontWeight.w600,
fontSize: 35,
letterSpacing: 0.27,
color: Color(0xFFFF8C3B),
),
),
Expanded(
flex: 20,
child: GridView.builder(
itemCount: homeList.length,
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 2, mainAxisSpacing: 20),
itemBuilder: (ctx, i) {
return GestureDetector(
onTap: () async {
if (i == 0) {
if (await interstitialAd.isLoaded) {
interstitialAd.show();
} else {
dailyRewardAlert(context);
}
} else if (i == 1) {
FlutterPollfish.instance.show();
} else if (i == 2) {
sendInvite();
} else if (i == 3) {
hideBannerAd();
Navigator.push(context,
MaterialPageRoute(builder: (context) => Roulette()));
} else if (i == 4) {
hideBannerAd();
Navigator.push(context,
MaterialPageRoute(builder: (context) => Scratch()));
}
},
child: Container(
decoration: BoxDecoration(
borderRadius:
const BorderRadius.all(Radius.circular(16.0)),
),
width: 150,
margin: const EdgeInsets.symmetric(horizontal: 11.0),
child: Container(
child: ClipRRect(
borderRadius: BorderRadius.circular(19.0),
child: Stack(
children: <Widget>[
Positioned.fill(
child: Image.asset(
homeList[i].imagePath,
fit: BoxFit.cover,
),
),
Positioned(
bottom: 0,
left: 0,
right: 0,
child: Container(
padding: EdgeInsets.symmetric(
horizontal: 9.0, vertical: 5.0),
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [
const Color(0xFFFF8C3B),
const Color(0xFFFE524B)
],
begin: Alignment.centerLeft,
end: Alignment.centerRight,
),
borderRadius: BorderRadius.only(
topRight: Radius.circular(15))),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(
"${homeList[i].taskTitle}",
style: TextStyle(
fontFamily: "Netflix",
fontWeight: FontWeight.w600,
fontSize: 17,
letterSpacing: 0.27,
color: Colors.white,
),
),
],
),
),
),
],
),
),
),
),
);
},
),
),
]),
),
),
);
}
我是 Flutter 的新手,这对我很有帮助,非常感谢您的贡献! :) 我需要网格视图方面的帮助
【问题讨论】:
-
你能把代码格式化一下吗?
-
我格式化了,你可以看看
-
你屏幕的可滚动区域是多少?
-
我无法理解你为什么要使用堆栈小部件!
-
我在首页的gridVI上方有几个组件\iew
标签: user-interface flutter gridview dart user-experience