是否可以将带参数的函数传递给VoidCallback?
例如这样的事情:
class MyClass {
void doSomething(int i){
}
MyOtherClass myOtherClass = new MyOtherClass(doSomething);
}
class MyOtherClass {
final VoidCallback callback(int);
MyOtherClass(this.callback);
callback(5);
}
Run Code Online (Sandbox Code Playgroud) 我正在努力使用其GlobalKey来获取Widget的高度。呈现Layout之后,将调用获取高度的函数,以确保上下文可用,但是key.currentState和key.currentContext仍返回null。
import 'package:flutter/material.dart';
class TestPage extends StatefulWidget{
@override
State<StatefulWidget> createState() => new TestPageState();
}
class TestPageState extends State<TestPage>{
final TestWidget testWidget = new TestWidget();
@override
initState() {
//calling the getHeight Function after the Layout is Rendered
WidgetsBinding.instance
.addPostFrameCallback((_) => getHeight());
super.initState();
}
void getHeight(){
final GlobalKey key = testWidget.key;
//returns null:
final State state = key.currentState;
//returns null:
final BuildContext context = key.currentContext;
//Error: The getter 'context' was called on null.
final RenderBox box = state.context.findRenderObject();
print(box.size.height);
print(context.size.height);
}
@override …Run Code Online (Sandbox Code Playgroud)