import 'package:flutter/material.dart';
class ButtonData {
final String text;
final Color? color;
ButtonData({
required this.text,
required this.color,
});
}
final List<ButtonData> buttonData = [
ButtonData(text: 'AC', color: Color(0xFFB71C1C)),
ButtonData(text: '⌫', color: Color(0xFF757575)),
ButtonData(text: '%', color: Color(0xFF757575)),
ButtonData(text: '/', color: Color(0xFF757575)),
ButtonData(text: '7', color: null),
ButtonData(text: '8', color: null),
ButtonData(text: '9', color: null),
ButtonData(text: '×', color: Color(0xFF757575)),
ButtonData(text: '4', color: null),
ButtonData(text: '5', color: null),
ButtonData(text: '6', color: null),
ButtonData(text: '-', color: Color(0xFF757575)),
ButtonData(text: '1', color: null),
ButtonData(text: '2', color: null),
ButtonData(text: '3', color: null),
ButtonData(text: '+', color: Color(0xFF757575)),
ButtonData(text: '0', color: null),
ButtonData(text: '00', color: null),
ButtonData(text: '.', color: null),
ButtonData(text: '=', color: Color(0xFF757575)),
];
那么有没有一种方法可以使用此列表中的上下文实例,或者我可以采取什么替代方法来访问上下文实例,因为我主要想做的是访问 Theme.of(context) .colorScheme 属性,因此它能够
如果您想使用 ButtonData 作为小部件,请将其扩展为无状态/有状态小部件,您可以在其中找到上下文和主题。
示例代码:
import 'package:flutter/material.dart';
class ButtonData extends StatelessWidget{
final String text;
final Color? color;
const ButtonData({super.key,
required this.text,
required this.color,
});
@override
Widget build(BuildContext context) {
//you will be able to access theme using context here
final theme = Theme.of(context);
return Container(
color: theme.colorScheme.primary,
);
}
}