美文网首页flutter学习
flutter Textfield在iOS设备上输入中文时的问

flutter Textfield在iOS设备上输入中文时的问

作者: CodeLuck | 来源:发表于2021-10-21 19:58 被阅读0次

    业务问题日常记录
    需求:在输入文字时,实时调接口搜索对应内容
    问题:输入中文时,在输入字母拼音时onChanged:方法在iOS上会实时回调,拼音也会被搜索。如果输入过快,由于接口异步回调导致内容展示异常。
    解决思路:
    1,在请求时取消上次的请求,只进行最后一次搜索。参考CancelToken 配合dio使用。需进行各种临界判断。
    2,后端接口返回数据时带上搜索的关键字,比对当前输入框内容和关键字,不匹配则舍弃不显示。保证显示最后一次搜索内容。
    3,输入中文时限制字母拼音在输入框内的显示,待选择中文后再显示,此时回调onChanged:方法保证搜索一次,参考https://juejin.cn/post/6844904096407765005。有点麻烦。
    4,使用dart自带属性isComposingRangeValid。方法:

    onChanged: (value) {
        if (_textFieldController.value.isComposingRangeValid) {
             return;
         }
         doSearch(str);
     }
    

    相关文章

      网友评论

        本文标题:flutter Textfield在iOS设备上输入中文时的问

        本文链接:https://www.haomeiwen.com/subject/ubkqaltx.html