java - 需要 2 次后按才能启动后退动作
问题描述
我正在使用片段创建底部导航视图,但问题是当我按下时没有任何反应,但是当我再次按下时,我的片段发生了变化。我正在使用.addToBackStack
但它正在使用 2 次后按。这是我的代码的参考,谢谢你提前
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.fragment.app.Fragment
import com.ikgptu.stookptu.databinding.ActivityMainBinding
class MainActivity : AppCompatActivity() {
private lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
//Frag Instance
val homeFragment = HomeFragment()
val notesFragment = NotesFragment()
val expenseFragment = ExpenseFragment()
val printFragment = PrintFragment()
setCurrentFragment(homeFragment)
binding.bottomNavbar.setOnNavigationItemSelectedListener{
when(it.itemId) {
R.id.menu_home -> {
setCurrentFragment(homeFragment)
}
R.id.menu_notes -> {
setCurrentFragment(notesFragment)
}
R.id.menu_expense ->{
setCurrentFragment(expenseFragment)
}
R.id.menu_print ->{
setCurrentFragment(printFragment)
}
}
true
}
}
private fun setCurrentFragment(fragment: Fragment){
supportFragmentManager.beginTransaction().apply {
replace(R.id.fragContainer,fragment).addToBackStack(null)
commit()
}
}
}
解决方案
推荐阅读
- python - 如何在 Python 中将 CTRL-P 发送到 Web 浏览器
- c# - 如何使用 iText 7 设置卢布符号?
- jenkins - 从上游 Jenkins 管道作业调用多个下游作业
- javascript - 用jquery对html表进行排序
- gis - 如何从geoserver请求WFS服务并将geojson数据加载为铯中的一层?
- c# - 如何使用 Automapper 展平 C# 中重复使用的子对象
- python - 是否可以将双矩阵列转换为列表或配对?
- apt - 源编译或使用apt有什么区别?
- mysql - 获取从现在起 3 天后到期的行
- php - MYSQL 只选择列的一部分