Search code examples
androidandroid-studiokotlinandroid-activityfragment

how to remove "Error inflating class fragment "


I have an error saying "Error inflating class fragment". I saw different solutions like one is saying to extend fragment activity but this is not fragment this is an activity so are there any other solutions? Following is my main activity

class MainActivity : AppCompatActivity() {

private lateinit var binding: ActivityMainBinding

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)

    binding = ActivityMainBinding.inflate(layoutInflater)
    setContentView(binding.root)

    addFragment(HomeFragment.newInstance())
    binding.navView.show(0)

    binding.navView.add(MeowBottomNavigation.Model(1, R.drawable.ic_dashboard_black_24dp))
    binding.navView.add(MeowBottomNavigation.Model(2, R.drawable.ic_dashboard_black_24dp))

    binding.navView.setOnClickMenuListener {
        when(it.id){
            0->{
                Toast.makeText(this, "Home Fragment", Toast.LENGTH_SHORT).show()
                replaceFragment(HomeFragment.newInstance())
            }
            1->{
                Toast.makeText(this, "Notifications Fragment", Toast.LENGTH_SHORT).show()
                replaceFragment(NotificationFragment.newInstance())
            }
        }
    }
}

private fun replaceFragment(fragment: Fragment) {
    val fragmentTransition = supportFragmentManager.beginTransaction()
        fragmentTransition.replace(R.id.nav_host_fragment_activity_main, fragment).addToBackStack(Fragment::class.java.simpleName).commit()
}
private fun addFragment(fragment: Fragment) {
    val fragmentTransition = supportFragmentManager.beginTransaction()
    fragmentTransition.add(R.id.nav_host_fragment_activity_main, fragment).addToBackStack(Fragment::class.java.simpleName).commit()
}

}


Solution

  • I changes frgment to frameLayout and error is gone now