显示和隐藏 Bottom Navigation bar

1、定义viewbinding变量,初始化,并设置界面

定义变量:

 private lateinit var binding: ActivityFavDishBinding

初始化并将布局设置给activity:


        binding = ActivityFavDishBinding.inflate(layoutInflater)
        setContentView(binding.root)

2、定义controller变量并初始化

定义变量

  private lateinit var mNavController : NavController

初始化

  mNavController = findNavController(R.id.nav_host_fragment_activity_fav_dish)

3、为actionbar设置controller

        setupActionBarWithNavController(mNavController, appBarConfiguration)
        navView.setupWithNavController(mNavController)

4、隐藏底部导航栏

 fun hideBottomNavigationView(){
        mBinding.navView.clearAnimation()
        mBinding.navView.animate().translationY(mBinding.navView.height.toFloat()).duration = 300
    }

5、显示底部导航栏

    fun showBottomNavigationView(){
        mBinding.navView.clearAnimation()
        mBinding.navView.animate().translationY(0f).duration = 300
    }

运行结果:

原来切换fragment时下面的导航框还在

调用隐藏底部导航栏

调用重新显示底部导航栏的方法

注:

代码:

package com.example.mykotlin1.view.activities

import android.os.Bundle
import com.google.android.material.bottomnavigation.BottomNavigationView
import androidx.appcompat.app.AppCompatActivity
import androidx.fragment.app.viewModels
import androidx.navigation.NavController
import androidx.navigation.findNavController
import androidx.navigation.ui.AppBarConfiguration
import androidx.navigation.ui.NavigationUI
import androidx.navigation.ui.setupActionBarWithNavController
import androidx.navigation.ui.setupWithNavController
import com.example.mykotlin1.R
import com.example.mykotlin1.application.FavDishApplication
import com.example.mykotlin1.databinding.ActivityFavDishBinding
import com.example.mykotlin1.viewmodel.FavDishViewModel
import com.example.mykotlin1.viewmodel.FavDishViewModelFactory

class FavDishActivity : AppCompatActivity() {

    private lateinit var mBinding: ActivityFavDishBinding
    private lateinit var mNavController : NavController


    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        mBinding = ActivityFavDishBinding.inflate(layoutInflater)
        setContentView(mBinding.root)


        val navView: BottomNavigationView = mBinding.navView

        mNavController = findNavController(R.id.nav_host_fragment_activity_fav_dish)
        // Passing each menu ID as a set of Ids because each
        // menu should be considered as top level destinations.
        val appBarConfiguration = AppBarConfiguration(
            setOf(
                R.id.navigation_home, R.id.navigation_dashboard, R.id.navigation_notifications
            )
        )
        setupActionBarWithNavController(mNavController, appBarConfiguration)
        navView.setupWithNavController(mNavController)
    }

    //返回按键
    override fun onSupportNavigateUp(): Boolean {
        return NavigationUI.navigateUp(mNavController,null)
    }

    fun hideBottomNavigationView(){
        mBinding.navView.clearAnimation()
        mBinding.navView.animate().translationY(mBinding.navView.height.toFloat()).duration = 300
    }

    fun showBottomNavigationView(){
        mBinding.navView.clearAnimation()
        mBinding.navView.animate().translationY(0f).duration = 300
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值