Flutter实现电影院选座效果
直接上效果图:竖屏:
横屏:
初始化自适应屏幕的放大缩小效果:
导语接到了一个仿电影院的需求,上周几乎是找遍了百度,谷歌,stackoverflow。 均没有找到用flutter实现的效果,那只能自己写一个了。
本文只讲思路,具体实现还需各位看官自己动手。只要看懂了下面的思路,实现起来非常简单
布局分析
中间的座位=>矩阵,通过Column嵌套Row实现,不能通过GridView实现(滑动冲突,下文会说明)
左侧导航条=>一个简单的Column(不能用ListView,同样会造成滑动冲突)
交互分析&实现放大缩小拖动效果:
对于放大缩小拖动的效果,Flutter现在有自带的组件InteractiveViewer
通过这个组件可完美实现放大缩小效果。组件属性这边不展开解释,比较简单,可点击上面链接自行了解。
这里讲下两个重点属性:
一、回调事件
交互开始 onInteractionStart
交互更新 onInteractionUpdate
交互结束 onInteractionEnd
二、变换控制器transformationController
可以 ...
安卓本地&云端组件化架构
背景公司项目目前安卓原生端有三个项目,分别是APP、智能电视看板、智能手表终端
三个应用在业务端有不同的表现,但在底层架构(基础组件)上应用一套逻辑
所以目前的架构需求是:
抽离基础组件上传到maven,以依赖的方式集成到各个项目
在APP中按具体业务模块拆分业务组件,
做到各个模块的完全独立(互不依赖),且各个模块可以单独运行,也可组合运行(可插拔)
架构以 APP为例,
将上面的两个大需求拆分后的组件架构:
其中本地模块为业务模块,互相独立,可作为模块被APP壳子所依赖,也可作为单独APP运行
云端模块为基础组件,不用作为APP单独运行且不关心业务,可在所有项目中被依赖作为基础组件
技术栈
技术栈
实现
语言
Kotlin
设计模式
MVVM
依赖注入
Koin
模块初始化
AndroidStartUp
网络请求
Retrofit+RetrofitUrlManager+Okhttp
异步
协程
UI
databinding & viewbinding
事件总线
LiveEventBus
路由
DRouter
存储
M ...
安卓系统卡顿分析
导读最近华为方舟编译器要开源了,笔者去看了下发布会PPT,发现作为一名Android开发者,PPT中所介绍的知识点我居然不能完全看懂???于是乎恶补了下PPT中的内容,整理成本文。
本文将用通俗的语言从底层介绍Android卡顿的历史原因和谷歌与之斗争的过程
阅读完这篇文章后你将
理解计算机是如何解读我们所写的程序并执行相应功能的
了解Android虚拟机的进化史
从底层了解造成Android卡顿的三大原因
一、基础概念
首先我们需要补习下一些基础概念,来理解计算机是如何解读我们所写的程序并执行相应功能的。
1.编译&解释
某些编程语言(如Java)的源代码通过编译-解释的流程可被计算机读懂
先上一段Java代码
123public static void main(String[] args){ print('Hello World')}
这是所有程序员的第一课,只需要写完这段代码并执行,电脑或手机就会打印出Hello World。那么问题来了,英文是人类世界的语言,计算机(CPU)是怎么理解英文的呢?
众所周知,0 ...