尝试使用底部导航视图,即android提供的标准视图。我第一次点击任何片段,它是一个超级延迟的UI反应时间(直到波纹,项目选择更新和新片段显示大约2秒) 它只是我第一次切换到任何片段,之后,它的行为与预期一致。
我在这里已经发现了一个类似的问题,但没有任何建议或答案。 See that post here
在下面找到用户切换片段的逻辑。
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
bottom_nav_bar.inflateMenu(R.menu.bottom_nav_bar_menu)
bottom_nav_bar.selectedItemId = R.id.nav_summary
bottom_nav_bar.setOnNavigationItemSelectedListener { menuItem ->
when (menuItem.itemId) {
R.id.nav_1-> startFragment1()
R.id.nav_2 -> startFragment2()
else -> startFragment3()
}
true
}
}
fun startFragment1() = replaceFragment(Fragment1(), "TAG1")
fun startFragment2() = replaceFragment(Fragment2(), "TAG2")
fun startFragment3() = replaceFragment(Fragment3(), "TAG3")
private fun replaceFragment(fragment: Fragment, fragmentTag: String) {
fragmentManager.beginTransaction()
.setCustomAnimations(R.animator.fade_in, R.animator.fade_out)
.replace(R.id.fragment_container, fragment, fragmentTag)
.commit()
}
答案 0 :(得分:3)
使用
supportfragmentmanager
而不仅仅是普通的FragmentManager。它更顺畅。当然你必须更改为v4 Fragment的导入,但之后它应该更好。在我做这个转换之前,我发生了各种各样奇怪的事情。