如何解决Flutter-如何动态更改卡片小部件的标题?
我目前正在使用Flutter开发Todo应用。这是我的第一个有些复杂的应用程序,所以我对如何完成此操作感到有些困惑。我创建了5张不同的卡,并且希望每个卡都有不同的标题。我希望使用列表中每个项目的进度条将这些卡片分类。这是我到目前为止的代码:
class DashboardScreen extends StatefulWidget {
final String userId;
DashboardScreen({this.userId});
static final String id = 'dashboard';
@override
_DashboardScreenState createState() => _DashboardScreenState();
}
class _DashboardScreenState extends State<DashboardScreen> {
int _index = 0;
@override
Widget build(BuildContext context) {
return Scaffold(
body: Column(
children: [
Expanded(
child: FutureBuilder(
future: usersRef.document(widget.userId).get(),builder: (BuildContext context,AsyncSnapshot snapshot) {
if (!snapshot.hasData) {
return Center(
child: CircularProgressIndicator(),);
}
User user = User.fromDoc(snapshot.data);
return Stack(
children: <Widget>[
new Container(
color: Color(0xFFF4F6FD),),new Container(
color: Color(0xFFF4F6FD),//blue section
height: MediaQuery.of(context).size.height / 2.93,Column(
children: [
Container(
margin: EdgeInsets.only(left: 20.0),child: Align(
alignment: Alignment.centerLeft,child: Container(
padding: EdgeInsets.only(top: 80,left: 20),child: Text(
'Hello,${user.name}!',style: TextStyle(
fontFamily: 'Barlow',fontSize: 30.0,color: Color(0xFF020417),decoration: Textdecoration.none,Container(
transform:
Matrix4.translationValues(-50.0,-80.0,0.0),padding: EdgeInsets.only(top: 100),margin: EdgeInsets.only(left: 10),child: Column(
children: [
SizedBox(
height: 150,width: 400,child: PageView.builder(
itemCount: 5,controller:
PageController(viewportFraction: 0.55),onPageChanged: (int index) =>
setState(() => _index = index),itemBuilder: (_,i) {
return Transform.scale(
scale: i == _index ? 1 : 1,child: Card(
color: Color(0xFF0A155A),elevation: 6,shape: RoundedRectangleBorder(
borderRadius:
BorderRadius.circular(10),child: Column(
mainAxisSize: MainAxisSize.min,children: <Widget>[
ListTile(
title: Text(
'Personal',style: TextStyle(
fontFamily: 'Barlow',fontSize: 25.0,color: Colors.white,decoration:
Textdecoration.none,],);
},Column(
children: [
Row(
children: [
Padding(
padding:
const EdgeInsets.only(top: 310.0,left: 40.0),child: Text(
'YOUR TASKS',fontSize: 15.0,color: Color(0XFF020417),Padding(
padding: const EdgeInsets.only(
top: 310.0,left: 185.0),child: Icon(
Icons.menu,color: Color(0xFFD103FC),Padding(
padding: const EdgeInsets.only(
top: 320.0,left: 40.0,right: 40.0),child: ListView.builder(
itemCount: 2,scrollDirection: Axis.vertical,itemBuilder: (context,index) {
return new Card(
color: Color(0xFF0A155A),shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10),child: Column(
mainAxisSize: MainAxisSize.min,children: <Widget>[
ListTile(
leading: Icon(
Icons.radio_button_unchecked,title: Text(
'Hello',style: TextStyle(
fontFamily: 'Barlow',);
},);
},floatingActionButton: Padding(
padding: const EdgeInsets.only(right: 18.0),child: Container(
height: 50.0,width: 50.0,child: FittedBox(
child: FloatingActionButton(
onpressed: () {
// Add your onpressed code here!
},child: Icon(
Icons.add,backgroundColor: Color(0xFFD103FC),);
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。