扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
基本和AppBar一样,只是他只能在CustomScrollView中使用,应该很常见,滑动的时候固定appbar,就需要用到他.
创新互联一直秉承“诚信做人,踏实做事”的原则,不欺瞒客户,是我们最起码的底线! 以服务为基础,以质量求生存,以技术求发展,成交一个客户多一个朋友!为您提供网站制作、成都网站设计、成都网页设计、小程序设计、成都网站开发、成都网站制作、成都软件开发、成都app软件开发是成都本地专业的网站建设和网站设计公司,等你一起来见证!
大部分和appbar一样,主要说下重要的几个:
是否将导航栏部分固定在appbar的位置.这个需求在实际中很常用. 看看效果图.
当 pinned = false:
可以看到appbar并没有固定在最上面,而是根据内容划出了界面.
当 pinned = true :
这个应该是需求中经常用到的效果了.
当floating = false :
当floating = true:
仔细看 ,区别是在列表整体向下滑动时,appbar开始显示的位置不同.
当为false时 ,向下滑动时,会先降列表内容滑动顶部,然后appbar会跟着列表滑动显示出来.如上图
当为true时, 向下滑动时,appbar会先跟着列表滑动显示出来. 然后继续列表的滑动. 如上图
不能单独使用要配合 ****floating 和 ****pinned
具体效果看官网地址
是否展开,默认false,直接看值为true的效果图,就明白了.
可以再里面添加扩展的内容:
通过测试发现 **后面不是 FlexibleSpaceBar 的话, stretch = true 无效. **
和Padding一样.子控件是 sliver 类型...
上图中在padding中添加了一个背景色为青色的容器widget
里面可以设置不是 sliver 类型的widget。如上图中的 padding中添加的 container
就两个协议,一个是布局协议一个展示协议.基本和GridView一样.也有count和extext... 不设置个数默认无数个
SliverChildListDelegate 这种方式前提是知道cell个数,比较少,好搭建
SliverChildBuilderDelegate 这种方式,可以根据数组去创建,不知道cell个数
和listview差不多.也是协议 不设置个数默认无数个
小菜在业务开发过程中会自定义 Slider 滑动条,而在自定义之前,小菜先简单了解一下 Flutter 自带的 Slider ;
简单分析源码可得, Slider 是一个有状态的 StatefulWidget 组件,属性也很清晰易懂,其中滑动过程中对应的 value 值和 onChanged 回调是必须参数;
value 未滑动过程中对应的值,在 min 和 max 之间; onChanged 是在滑动过程中回调,当 onChanged 为 null 或 value 所在的 min 和 max 集合范围为空时, Slider 禁止滑动;
min 和 max 为滑动条范围,而 value 的取值范围是在 min 和 max 之间,无论 value 为正还是负,均需要在 min 和 max 之间;
activeColor 为滑动条已滑动过的颜色; inactiveColor 为滑动条中未滑动的颜色;两者均可以在 SliderTheme 中设置;
label 为滑动条滑动到某一节点的标签文案; divisions 是把 min 和 max 等分为 divisions 份数;只有在 divisions 生效时, label 才会展示;
onChangeStart 和 onChangeEnd 分别对应滑动过程中 value 值何时开始更改或何时完成更改时对应的回调;
Slider 的主题效果可以通过 SliderTheme 或 ThemeData.sliderTheme 中获取更新,相较于 Slider 只提供已滑动和未滑动颜色效果,属性粒度更细;
activeTrackColor 和 inactiveTrackColor 分别对应 Slider 已滑动过和未滑动过的轨道颜色;
thumbColor 对应滑动按钮颜色,而 overlayColor 对应滑动按钮映射的叠层颜色,通常设置为半透明状态; overlayShape 对应叠层样式;
valueIndicatorColor 对应 label 气泡颜色; valueIndicatorShape 对应气泡内文字属性; valueIndicatorShape 对应气泡样式,可以再此进行自定义气泡;
activeTickMarkColor 对应已选中刻度颜色; inactiveTickMarkColor 对应未选中刻度颜色; tickMarkShape 对应刻度样式;
trackHeight 为 Slider 轨道高度; trackShape 对应轨道样式,主要再此处进行自定义样式;
对于不可滑动状态, SliderThemeData 提供了对应属性;
Slider 案例源码
小菜本节暂未涉及自定义滑动条样式,对于底层的 Slider 了解还不够深入;如有错误,请多多指导!
1.webview_flutter
2.flutter_inappwebview
3.flutter_webview_plugin
笔者最近发现webview_flutter在Android端嵌套带有较长的Webview页面时偶欧会存在卡顿问题表现为加速向下滑动到页面底部,然后从底部慢慢像上滑就不起作用了,体验很不好,经过一天的排查和实验发现是webview_flutter插件自己的问题,用原生嵌套WebView并没有问题,后来改成flutter_webview_plugin问题可以解决,但是flutter_webview_plugin插件并不是基于flutter渲染的并不能在嵌套webview的页面自定义flutter样式层,后来发现使用flutter_inappwebview插件能够完美解决问题。推荐你们用flutter_inappwebview。
空间超出提示
注释 :Flutter Incorrect use of ParentDataWidget
问题原因:Expanded、Flexible等组件,在“Container、Padding、Stack”组件中导致的。
解决方案:保持: Expanded、Flexible 只在 Row、Column 等组件内,不在其他组件内使用。
控件Row有一个水平的布局方向,但是内容已经超出了可显示的范围。
建议我们使用有弹性的控件比如Expanded代替,或者使用可裁剪的控件ClipRect代替,还可以使用具体滚动属性的控件比如ListView代替
1、类似图片加载失败,然后溢出挤压空间,可以用Container包裹一下
直接使用,如果图片地址失效,就会溢出
直接使用,图片链接失效引起
2、类似这种超出
A RenderFlex overflowed by 48 pixels on the right.
3、类似这种Column滚动超出!
实现页面滑动需要用到SingleChildScrollView组件,SingleChildScrollView和Android中ScrollView类似
问题原因:Expanded、Flexible等组件,在“Container、Padding、Stack”组件中导致的。
解决方案:保持:Expanded、Flexible只在Row、Column等组件内,不在其他组件内使用。
PageView 是一个滑动视图列表,它也是继承至 CustomScrollView 的。
在 PageView 里有三个构造函数:
PageView 有以下常用属性:
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流