如何解决在小部件类 Flutter 中实现基类
我希望从基类实现的小部件类强制它们实现特定的方法。
基类:
class Test {
bool check() {
return false;
}
}
那么其他小部件应该实现 Test
,无论它们是有状态的还是无状态的。
class TestWidget1 extends StatelessWidget implements Test{
@override
Widget build(BuildContext context) {
...
}
@override
bool check(bool checkAnswer) {
return true;
}
}
所以我可以使用下面示例中的小部件,并确保它们都实现了 check
方法:
Test test1 = TestWidget1();
final bool result = test1.check();
但是有状态的小部件呢?我需要在有状态小部件的小部件类中实现 Test
类,以便我可以访问小部件类之外的 check
方法。但我无权访问状态变量:
class TestWidget2 extends StatefulWidget implements Test {
@override
_TestWidget2State createState() => _TestWidget2State();
@override
bool check(bool checkAnswer) {
// Todo: implement check
}
}
class _TestWidget2State extends State<TestWidget2> {
@override
Widget build(BuildContext context) {
return Container();
}
}
如果我在 Test
中实现 _TestWidget2State
,Test
不再是 TestWidget2
小部件的父级。
我该如何解决这个问题?是否有更好的解决方案通过小部件实现类而不管其类型(有状态/无状态)?
解决方法
创建一个单独的类而不是创建一个小部件。
class SampleClass implements Test {
@override
bool check(bool checkAnswer) {
return true;
}
}
正在呼叫...
Test sample = SampleClass();
final bool result = sample.check();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。