目录
leanback虽然可以简化开发流程,但国内好多设计与它不符合.有没有替代品可以用呢
tvapp与手机的重大不同
- 时刻需要焦点,以便告知用户现在操作点在哪里.
- 交互略有不同,比如加载更多时应该如何
- 页面复杂度要比手机低的多
- 有更明显的动画效果,每一个可见的控件都要通过遥控器上下左右中能涉及到
tv的主要功能页面
完整的tvapp主要包含几类型的页面
- 菜单,或在左侧,或在顶部
- 内容列表
- 网格内容,以网格的形式展现,可以垂直滚动
- 横向列表,可以横向无限滑动.
- 垂直列表中包含嵌套的水平滑动的列表
- 搜索页,包含搜索条,搜索框搜索按钮与内容
- 详情页,展现视频简介,底部的推荐横向列表
- 播放页
- 设置页
- 登录页
焦点可以是放大选中的控件,或者加一个边框.谷歌优化是使用放大的效果.leanback也是这样的.国内多数是加了边框.
leanback的替代库
- com.rubensousa.dpadrecyclerview.DpadRecyclerView
- com.owen.tvrecyclerview
两个都可以在maven里面找到,github上也有 , github.com/rubensousa/DpadRecyclerView
前者是老外开发的,最近有不少更新,支持compose,后者是国内开发者修改的,二者都是基于recyclerview
另外有一个修改版本的leanback,也叫tvrecyclerview,但里面的内容是leanback.
两个库相同的是,动画要每一个自定义,选中时添加动画.
dpadrecyclerview较新,所以示例也是新的,使用material的card,点击有水波纹效果,另外支持contactadapater的示例,可以在加载中显示占位.示例完善,有一个缺点,焦点框不能居中
tvrecyclerview较旧,在著名的tvbox上用到,但我在修改的时候遇到一个问题,第一项高度不对.基本功能还是行的,毕竟在基于recyclerview的修改.
tvbox中动画效果,我觉得太生硬了,可以修改加速器.对tvrecyclerview设置监听器就可以了.然