Flutter开发 - 今日遇到的问题

问题1

当我们使用Scaffold组件作为页面根组件时,页面上若有TextField输入框,底部有子组件,点击弹出键盘会将底部组件顶上来,这样的体验明显不好,那么如何解决呢?

我们可以将Scaffold的resizeToAvoidBottomInset属性设为false,避免这个问题。

问题2

同样是Scaffold组件里,若设置了MediaQuery相关的属性,键盘弹出时页面会闪一下,然后键盘又收起了,导致输入框无法输入内容!

原因是Scaffold底层的渲染组件问题,若键盘弹出时,会调用resize方法,缩小Scaffold组件的大小,导致页面刷新,然后会重新布局页面,导致输入框失去响应(焦点),键盘又会收起。目前没有找到别的解决方案,只能将MediaQuery相关的内容都删除,这样就不会有问题了。如果有朋友知道别的方法,麻烦告知哦!

问题3

ListView里的行里若有Text组件,当内容过长时,会显示overflow溢出报错。

刚开始想到,用Expanded组件配合设置Text的maxLines属性来达到Text换行的效果;不过如果在Column组件里嵌套Row组件,再使用Expanded组件,会报错,打印的错误是:使用了错误的ListView组件。后面才知道可以使用Wrap组件里面包裹Text组件,同样能达到换行的效果,而且更好用,mark一下。

问题4

RefreshIndicator上下拉刷新组件,配合ListView组件可以实现上下拉刷新加载的效果。今天碰到的问题是,若ListView里的行条目较少时,RefreshIndicator的上下拉没有效果。

可以设置RefreshIndicator的physics属性为AlwaysScrollableScrollPhysics(),总是可以滑动,解决这个问题,之前不知道, mark一下。

好了,今天就遇到这些问题,后续有问题再另行记录。若对你有帮助的话,可以点个赞哦!

你可能感兴趣的:(Flutter开发 - 今日遇到的问题)