Android 底部导航栏+页面切换

本文介绍了在Android应用中实现底部导航栏与页面切换的两种方案,包括使用NavigationUI和ViewPager2。通过NavigationUI,可以方便地设置底部栏并链接导航图,但可能导致Fragment每次切换都重建。使用ViewPager2结合FragmentStateAdapter可以缓存页面,保持页面状态。此外,还解决了在item2页面点击返回键时正确退出的问题。
摘要由CSDN通过智能技术生成

lzyprime 博客 (github)
更新时间: 2020.12.21
创建时间:2020.11.25
qq及邮箱:2383518170

kotlin & android 笔记


更新

2020.12.21 解决 “在item2页面点击返回键会返回item1, 而非退出” 问题

之前笔记里(android navigation组件)记录整个导航组件时, 其中关于自定义返回导航只是简单一提, 并用于在MainActivity的回调里整体组织路由。

提供自定义返回导航 官网文档

Item2, Item3页面注册返回事件, addCallBack(LifecycleOwner, OnBackPressedCallback)版本, 会检测生存期,在页面被销毁时自动删掉回调。OnBackPressedCallback 构造函数传入 Boolean 表示回调初始是否开启(isEnable), 之后可以调用它的 setEnable 来改变状态。

// 仓库已经更新
class Item2Fragment: Fragment(R.layout.item2_fragment){
   
    override fun onCreate(savedInstanceState: Bundle?) {
   
        super.onCreate(savedInstanceState)
        requireActivity().onBackPressedDispatcher.addCallback(this, object :OnBackPressedCallback(true){
   
            override fun handleOnBackPressed
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值