假设我有这门课:
class AppTheme {
final BuildContext context;
AppTheme(this.context);
TextStyle caption() {
return Theme.of(context).textTheme.caption.copyWith(
color: Colors.black
);
}
}
如何修改它以便我可以使用以下方式访问caption
:
AppTheme.of(context).caption();
最佳答案
我不知道为什么你需要这样,当你已经可以使用它轻松地拥有它
AppTheme(context).caption();
但如果你真的需要它,你可以尝试这个:
class AppTheme {
final BuildContext context;
AppTheme._(this.context); // make this constructor private
static AppTheme of(BuildContext context) => AppTheme._(context); // pass context to above constructor
TextStyle caption() {
return Theme.of(context).textTheme.caption.copyWith(color: Colors.black);
}
}
你可以使用它
AppTheme.of(context).caption();
关于flutter - Dart 如何制作 MyClass.of(context) 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57946592/