所以我一直在学习颤振,我陷入了困境。对不起,如果这是一个愚蠢的问题。我目前正在尝试构建类似卡片标签的东西。信息和小部件将存储在卡片中。
想象一下像 Tinder 这样的东西,他们有多个卡片叠并左右滑动来导航。
我计划创建它,但我似乎无法找到一种方法来添加/渲染带有按钮的新卡。
这就像向列表中添加一些东西一样,Flutter 将使用一个 ListView 构建器,我们将在其中添加到列表中。但是没有 TabBarView 构建器。这是不可能的事情吗?我尝试在选项卡中放置一个列表,但它仍然不一样。
我在这里创建了一些基本骨架来帮助传达我的意思。所以卡片会左右滑动,appBar中有一个添加卡片的按钮。长度现在是 2,我希望按钮渲染第三张卡片。这可能吗?
提前致谢!
import 'package:flutter/material.dart';
void main() {
runApp(new MaterialApp(
home: new CardStack(),
));
}
class CardStack extends StatefulWidget {
@override
_MainState createState() => new _MainState();
}
class _MainState extends State<CardStack> with SingleTickerProviderStateMixin {
TabController _cardController;
@override
void initState() {
super.initState();
_cardController = new TabController(vsync: this, length: 2);
}
@override
void dispose() {
_cardController.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return new Scaffold(
backgroundColor: Colors.grey[300],
appBar: new AppBar(
actions: <Widget>[
new IconButton(
icon: const Icon(Icons.add),
tooltip: 'Add Tabs',
onPressed: null,
),
],
title: new Text("Title Here"),
bottom: new PreferredSize(
preferredSize: const Size.fromHeight(20.0),
child: new Theme(
data: Theme.of(context).copyWith(accentColor: Colors.grey),
child: new Container(
height: 50.0,
alignment: Alignment.center,
child: new TabPageSelector(controller: _cardController),
),
)
)
),
body: new TabBarView(
controller: _cardController,
children: <Widget>[
new Center(
child: new Card(
child: new Container(
height: 450.0,
width: 300.0,
child: new IconButton(
icon: new Icon(Icons.favorite, size: 100.0),
tooltip: 'Favorited',
onPressed: null,
)
),
),
),
new Center(
child: new Card(
child: new Container(
height: 450.0,
width: 300.0,
child: new IconButton(
icon: new Icon(Icons.local_pizza, size: 50.0,),
tooltip: 'Pizza',
onPressed: null,
)
),
),
),
],
),
);
}
}