- selected: 选中才显示标题;
- labeled: 标题一直显示;
- unlabeled: 只显示 icon,不显示标题。
2. Lottie
对于这个东东,不知道说啥。忽略吧。
想起来都是累,韩总让我自己折腾 Lottie json 文件。哭唧唧
安利一个在线编辑 Lottie json 文件的地址:
实战部分
Step 1:导入提供的 Lottie Json 文件
新建 assets 目录,这里我做了 Android 10 深色兼容,所以需要提供深色(暗黑)模式下 Lottie 文件。
老渣男,给我的素材用不了,害我借用别人家的 App Lottie 素材。
Step 2:定义 Lottie 枚举类并封装基础数据:
enum class LottieAnimation(val value: String) {
// 截取「喜马拉雅」App Lottie 素材
HOME(“lottie/bottom_tab_home_page_btn.json”),
SUBSCRIBE(“lottie/bottom_tab_my_listen_btn.json”),
DISCOVERY(“lottie/bottom_tab_finding_btn.json”),
ACCOUNT(“lottie/bottom_tab_mine_btn.json”),
HOME_NIGHT(“lottie-night/bottom_tab_home_page_btn.json”),
SUBSCRIBE_NIGHT(“lottie-night/bottom_tab_my_listen_btn.json”),
DISCOVERY_NIGHT(“lottie-night/bottom_tab_finding_btn.json”),
ACCOUNT_NIGHT(“lottie-night/bottom_tab_mine_btn.json”)
}
复制代码
封装个 BasicData,存放 App 内置的一些基本数据,这里主要针对 Lottie 文件:
val mNavigationAnimationList = arrayListOf(
LottieAnimation.HOME,
LottieAnimation.SUBSCRIBE,
LottieAnimation.DISCOVERY,
LottieAnimation.ACCOUNT
)
val mNavigationAnimationNightList = arrayListOf(
LottieAnimation.HOME_NIGHT,
LottieAnimation.SUBSCRIBE_NIGHT,
LottieAnimation.DISCOVERY_NIGHT,
LottieAnimation.ACCOUNT_NIGHT
)
复制代码
Step 3:导入对应依赖,新增 Lottie Utils
api ‘com.google.android.material:material:1.2.0’
api ‘com.airbnb.android:lottie:3.4.1’
复制代码
工具类方法:
/**
- 获取 Lottie Drawable
*/
fun getLottieDrawable(
animation: LottieAnimation,
bottomNavigationView: BottomNavigationView
): LottieDrawable {
return LottieDrawable().apply {
val res
《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享
ult = LottieCompositionFactory.fromAssetSync(
bottomNavigationView.context.applicationContext, animation.value
)
callback = bottomNavigationView
composition = result.value
}<