logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

07_Flutter使用NestedScrollView+TabBarView滚动位置共享问题修复

可以看到,上图中三个列表的滑动位置共享了,滑动其中一个列表,会影响到另外两个,这显然不符合要求,先来看下布局,再说明产生这个问题的原因:布局整体使用NestedScrollView,顶部banner和TabBar通过headerSliverBuilder创建,body为TabBarView,TabBarView中有三个列表,通过TabController与TabBar实现联动,同时每一个列表通过继

文章图片
#flutter#移动开发
06_Flutter自定义锚点分类列表

categoryWidth: 左侧边栏的宽度,右侧区域的宽度填充剩余空间即可。itemCount: 总共有多少个分类项,也就是左侧边栏中有多少个字项。sticky: 滑动过程中,右侧标题是否吸顶。controller: 外部通过controller可以控制左侧边栏中子项的选中以及右侧列表滑动位置的联动,同时监听选中状态。categoryItemBuilder: 创建左侧边栏中的每一个分类项。sec

文章图片
#flutter#移动开发#android
05_Flutter屏幕适配

可以看到,ViewConfiguration对象的创建过程,会传递默认的像素比,以及确定默认的逻辑尺寸,这里就是我们第一个需要修改的地方,那么怎么修改,毫无疑问,需要把RendererBinding的renderView的值替换成我们自己创建的,这样我们就可以根据自己计算的逻辑尺寸和像素比去创建ViewConfiguration了。可以看到,这里在计算点击的触摸坐标时,还使用的是默认的像素比去计算

文章图片
#flutter#android#移动开发
08_flutter中如何优雅的提前获取child的宽高

本文探讨了在Flutter中提前获取子组件宽高的优雅实现方案。针对SliverAppBar展开高度需要显式指定的问题,分析了三种解决方案:手动计算(易错)、重写组件(维护成本高)以及自定义RenderObject方案。重点推荐第三种方案,通过创建SliverPrototypeBuilder组件,利用原型Widget预先计算尺寸,再构建实际渲染的子组件。该方案复用性强、扩展性好,不依赖SDK内部实现

#flutter#android
04_Flutter自定义Slider滑块

既然要自定义滑块,毫无疑问需要从SliderThemeData的thumbShape入手。thumbShape;});因此我们可以定义一个类继承SliderComponentShape,并实现getPreferredSize和paint方法,getPreferredSize控制滑块大小,paint负责把滑块绘制到屏幕上。

文章图片
#flutter#android#ios +1
04_Flutter自定义Slider滑块

既然要自定义滑块,毫无疑问需要从SliderThemeData的thumbShape入手。thumbShape;});因此我们可以定义一个类继承SliderComponentShape,并实现getPreferredSize和paint方法,getPreferredSize控制滑块大小,paint负责把滑块绘制到屏幕上。

文章图片
#flutter#android#ios +1
02_Flutter自定义Sliver组件实现分组列表吸顶效果

在使用SliverPersistentHeader时要求我们明确指定子控件的高度,不支持吸顶上推效果,使用起来不够灵活,所以我们参考并结合SliverToBoxAdapter和SliverPersistentHeader源码,自己实现一个自适应高度的吸顶Sliver组件,并在此基础上一步步实现吸顶上推效果。可以看到,所有的分组section都已经吸顶了,只不过吸顶位置都是0,并且前一个sectio

文章图片
#flutter#android
03_Flutter自定义下拉菜单

在Flutter的内置api中,可以使用showMenu实现类似下拉菜单的效果,或者使用PopupMenuButton组件,PopupMenuButton内部也是使用了showMenu这个api,但是使用showMenu时,下拉面板的显示已经被约定死了,只能放一个简单的列表,没有办法定制下来面板的ui,并且下拉面板的宽高需要通过指定constraints进行限制,下面是一个简单的showMenu的

13_android编译ijkplayer

13_android编译ijkplayer一.编译环境macOS Big Sur 11.4NDK r10eHomeBrewgit二.编译前准备配置ANDROID_SDK和ANDROID_NDK环境变量安装git,make, yasmbrew install gitbrew install makebrew install yasm三.使用git获取ijkplayer最新源码git clone ht

#android
11_android刮刮卡自定义组件编写

11_android刮刮卡自定义组件编写一.先上效果图二.自定义组件类创建,绘制遮罩创建一个自定义组件类,你也可以继承自FrameLayout/RelativeLayout/ConstraintLayout,甚至是ViewGroup,只不过如果继承自ViewGroup,需要自己实现measure和layout过程,这里继承LinearLayout实现public class ScratchCard

#android#java#移动开发
到底了