Flutter keyboard_actions小部件区域滚动不起作用

我的任务是向文本键盘添加“完成”按钮,该按钮会在CupertinoTextField填充值后隐藏键盘。
我使用keyboard_actions lib可以正常工作,但是FormKeyboardactions()小部件的区域变得无法滚动-我执行了 keyboard_actions库。

我试图将CupertinoTextField作为孩子直接添加到FormKeyboardactions(),但是它也不起作用。

父PageTemplate小部件的代码:

@override
Widget build(BuildContext context) {
return GestureDetector(
  onTap: () {
    FocusScope.of(context).unfocus();
  },child: Scaffold(
    body: FormKeyboardactions(
      child: SafeArea(  //child
          child: Padding(
            padding: DesignPadding.V16__X,child: ListView(
              shrinkWrap: true,children: this.children
            ),),floatingactionButton: Padding(
      padding: const EdgeInsets.symmetric(horizontal: 20.0,vertical: 8),child: this.floatingactionButton,floatingactionButtonLocation: FloatingactionButtonLocation.centerFloat,);
 }

具有CupertinoTextField的小部件:

class _ProductEditCommentState extends State<ProductEditComment> {
final Focusnode focusnode = Focusnode(skipTraversal: true);

KeyboardactionsConfig _buildConfig(BuildContext context) {
return KeyboardactionsConfig(
  keyboardactionsPlatform: KeyboardactionsPlatform.ALL,keyboardBarColor: Colors.grey[200],nextFocus: false,actions: [
    Keyboardaction(
      focusnode: focusnode,closeWidget: Padding(
        padding: DesignPadding.V8__X,child: Text(
          "Done",style: TextStyle(
            color: DesignColors.BLACK,fontSize: DesignFonts.FONT_SIZE__16,fontFamily: DesignFonts.FONT_FAMILY__MEDIUM,],);
}
@override
void initState() {
 FormKeyboardactions.setKeyboardactions(context,_buildConfig(context));
 super.initState();
}

@override
void dispose() {
 super.dispose();
}

@override
Widget build(BuildContext context) {
 ProductEditBloc bloc = BlocProvider.of(context);
 return  SingleChildScrollView(
       child: CupertinoTextField(
         focusnode: focusnode,maxLines: null,onChanged: this.widget.onChanged,controller: this.widget.controller,keyboardType: TextInputType.multiline,decoration: BoxDecoration(border: null),textCapitalization: TextCapitalization.sentences,placeholder: bloc.productComment == null || bloc.productComment.isEmpty
             ? "Добавить заметку"
             : bloc.productComment,placeholderStyle: TextStyle(
             color: DesignColors.GREY_CHROME,fontSize: DesignFonts.FONT_SIZE__14,fontFamily: DesignFonts.FONT_FAMILY__REGULAR),style: TextStyle(
             color: DesignColors.GREY_COAL,padding: EdgeInsets.only(
           left: DesignPadding.V10,top: DesignPadding.V14,bottom: DesignPadding.V20,);
   }
  }

ProductEditComment小部件的实现:

@override
Widget build(BuildContext context) {
 return BlocProvider(
     bloc: bloc,child: PageTemplate( 
children: <Widget>[
    Heading(
        title: "Заметка",style: DesignFonts.STYLE_TITLE,StreamBuilder<String>(
          stream: bloc.outComment,initialData: this.widget.product?.comment,builder: (context,snapshot) {
            return ProductEditComment(
              name: snapshot.data,onChanged: bloc.setComment,controller: bloc.commentController,);
          }),]
 )
qiannianqimeng 回答:Flutter keyboard_actions小部件区域滚动不起作用

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3073425.html

大家都在问