controller.animateTo controller.position.maxScrollExtent在我的列表视图中不工作
我的代码:
class ForgotPasswordScreen extends StatefulWidget {
const ForgotPasswordScreen();
@override
State<StatefulWidget> createState() => ForgotPasswordScreenState();
}
class ForgotPasswordScreenState extends State<ForgotPasswordScreen> {
late FocusNode phoneFocusNode;
final ScrollController controller = ScrollController();
@override
void initState() {
phoneFocusNode = FocusNode();
phoneFocusNode.addListener(() {
if (phoneFocusNode.hasFocus == true) {
print('true');
print(phoneFocusNode.hasFocus);
controller.animateTo(
controller.position.maxScrollExtent,
curve: Curves.easeOut,
duration: const Duration(milliseconds: 500),
);
} else {
print('false');
print(phoneFocusNode.hasFocus);
}
});
super.initState();
}
@override
void dispose() {
phoneFocusNode.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: ListView(
controller: controller,
children: [
InputText(
controller: _phoneNumberController,
prefixText: '+68 ',
focusNode: phoneFocusNode,
),
const SizedBox(height: 30),
Button(
onPressed: () {},
child: Text(
'Next',
),
),
],
),
);
}
}
我希望输入文本为focusnode.hasFocus==true。可以滚动到列表视图的底部。hasFocus值为真,但不起作用。listview没有向下限移动,它有
设置
ListView(
shrinkWrap: true,
otherParams: ...
)