我在flutter中有一个类,我正在初始化一些类对象。我想调用那个类,对象将被初始化,我想在caller类中访问该对象。
下面是我的代码
import 'package:flutter/material.dart';
@immutable
class CardviewListItem {
//final FlatButton icon;
final IconData icon;
final String title;
final String amount;
const CardviewListItem({
@required this.icon,
@required this.title,
@required this.amount,
});
}class SomeOtherClass {
final summaryListItems = <CardviewListItem>[
CardviewListItem(
title: 'Total Income',
amount:'4434.65',
icon: makeIconWithCircle(Icons.attach_money) // call function to create an icon with a circle in the background.
),
];
static Widget makeIconWithCircle(IconData iconData) { // function takes in the icon you want to create with a green background
final circle = Container(
height: 25.0,
width: 25.0,
decoration: BoxDecoration(
color: Colors.green,
shape: BoxShape.circle
),
);
final icon = Icon(
iconData, // iconData paramater is used here
color: Colors.white,
size: 18,
);
final iconWithCircle = Stack(
alignment: Alignment.center,
children: <Widget>[
circle,
icon
],
);
return iconWithCircle;
}
}我想调用SomeOtherClass并访问summaryListItems对象,这是我的caller类
import 'package:flutter/material.dart';
import 'package:finsec/widget/cardview_widget.dart';
import 'package:finsec/utils/strings.dart';
import 'package:finsec/utils/dimens.dart';
import 'package:finsec/utils/colors.dart';
import 'package:finsec/data/cardview_list_item.dart';
void main() {
runApp(new HomeScreen());
}
class HomeScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return SingleChildScrollView(
child: new Stack(
children: <Widget>[
new Container(
height: margin_200dp,
color: colorPrimary,
),
new Container( //container to overlay on top of blue container
alignment: Alignment.topCenter,
padding: new EdgeInsets.only(top: margin_0dp, right: margin_8dp, left: margin_8dp, bottom: margin_5dp),
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Text(
zeroAmount,
style: TextStyle(color: white, fontSize: 40.0, fontWeight: FontWeight.bold)
),
Text(
currentBalance, style: TextStyle(color: white, fontSize: 20.0, fontWeight: FontWeight.bold)
),
cardView(
header: summaryCard,
elevation: margin_4dp,
height: margin_220dp,
padding: margin_15dp,
listItems: <<I WANT TO ACCESS summaryListItems HERE>>
),
//cardView(context)
],
),
)
],
),
);
}
}我希望能够在caller类中调用SomeOtherClass并访问summaryListItems。请参见上面代码中的listItems:<>行
发布于 2019-07-03 23:23:29
您只需要在HomeScreen中获取SomeOtherClass的一个实例,这取决于您希望如何对其进行建模某些类需要创建该实例并将其注入到屏幕上,或者只是让屏幕创建它。最简单的方法是在屏幕上创建实例,基本上是:
class HomeScreen extends StatelessWidget {
SomeOtherClass someotherClass = SomeOtherClass();然后在列表中使用
cardView(
header: summaryCard,
elevation: margin_4dp,
height: margin_220dp,
padding: margin_15dp,
listItems: someotherClass.summaryListItems,
),希望能有所帮助,
https://stackoverflow.com/questions/56872223
复制相似问题