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
}
}