Android:BottomNavigationView第一个片段开关超级延迟

时间:2018-03-01 23:47:47

标签: android android-fragments kotlin bottomnavigationview

尝试使用底部导航视图,即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()
}

1 个答案:

答案 0 :(得分:3)

使用

supportfragmentmanager

而不仅仅是普通的FragmentManager。它更顺畅。当然你必须更改为v4 Fragment的导入,但之后它应该更好。在我做这个转换之前,我发生了各种各样奇怪的事情。