导航抽屉滞后

时间:2021-04-21 07:17:21

标签: android android-studio kotlin navigation-drawer lag

我刚刚开始学习 android studio / kotlin,完成后我觉得我的应用程序有延迟,每当我尝试关闭或打开导航抽屉时。

这是我的代码:

private var drawerLayout: DrawerLayout? = null;
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    
    drawerLayout = findViewById(R.id.nav_view)
    val navigationView = findViewById<NavigationView>(R.id.navigation_view)
    navigationView.setNavigationItemSelectedListener(this)
    supportFragmentManager.beginTransaction().replace(R.id.Fragment_container, HomeFragment())
    val toolbar = findViewById<Toolbar>(R.id.toolbar)

    val toggle = ActionBarDrawerToggle(
        this,
        drawerLayout,
        toolbar,
        R.string.navigation_draw_open,
        R.string.navigation_draw_close
    )
    drawerLayout?.addDrawerListener(toggle)
    toggle.syncState()
    if (savedInstanceState == null) {
      supportFragmentManager.beginTransaction().replace(R.id.Fragment_container, HomeFragment()).commit()
        navigationView.setCheckedItem(R.id.home)
    }
}
override fun onNavigationItemSelected(item: MenuItem): Boolean {
    when (item.itemId) {
        R.id.home -> supportFragmentManager.beginTransaction()
            .replace(R.id.Fragment_container, HomeFragment()).commit()
        R.id.thai -> supportFragmentManager.beginTransaction()
            .replace(R.id.Fragment_container, ThaiFragment()).commit()
        R.id.eng -> supportFragmentManager.beginTransaction()
            .replace(R.id.Fragment_container, EngFragment()).commit()
        R.id.dessert -> supportFragmentManager.beginTransaction()
            .replace(R.id.Fragment_container, DessertFragment()).commit()
        R.id.random -> supportFragmentManager.beginTransaction()
            .replace(R.id.Fragment_container, RandomFragment()).commit()
    }
    drawerLayout!!.closeDrawer(GravityCompat.START)
    return true
}
override fun onBackPressed() {
    if (drawerLayout!!.isDrawerOpen(GravityCompat.START)) {
        drawerLayout!!.closeDrawer(GravityCompat.START)
    } else {
        super.onBackPressed()
    }
}

无论如何我可以改进这一点?

0 个答案:

没有答案