返回

Android MVVM+FragmentContainerView+BottomNavigationView 搭建基础框架

Android







**引言** 

随着 Android 技术的不断更新,想要掌握最新的技术栈并搭建一个基础框架变得越来越重要。本文将详细讲解如何使用最新的技术栈来搭建一个最基础的 Android MVVM 框架,包括使用 FragmentContainerView 和 BottomNavigationView。同时,还将分享在搭建过程中遇到的一个小坑,以便读者避免同样的问题。

**一、搭建基础类 BaseActivity** 

首先,我们需要创建一个基础类 BaseActivity,这个类将作为所有 Activity 的父类,并提供一些公共的方法和属性。在 BaseActivity 中,我们可以定义一些常用的方法,如:

* showToast():显示一个 Toast 消息。
* startActivity():启动一个新的 Activity。
* finish():关闭当前 Activity。

同时,我们还可以在 BaseActivity 中定义一些公共的属性,如:

* context:当前 Activity 的上下文。
* intent:启动当前 Activity 的 Intent。

**二、搭建基础类 BaseFragment** 

接下来,我们需要创建一个基础类 BaseFragment,这个类将作为所有 Fragment 的父类,并提供一些公共的方法和属性。在 BaseFragment 中,我们可以定义一些常用的方法,如:

* showToast():显示一个 Toast 消息。
* startActivity():启动一个新的 Activity。
* finish():关闭当前 Fragment。

同时,我们还可以在 BaseFragment 中定义一些公共的属性,如:

* context:当前 Fragment 的上下文。
* intent:启动当前 Fragment 的 Intent。

**三、搭建基础类 BaseViewModel** 

最后,我们需要创建一个基础类 BaseViewModel,这个类将作为所有 ViewModel 的父类,并提供一些公共的方法和属性。在 BaseViewModel 中,我们可以定义一些常用的方法,如:

* showToast():显示一个 Toast 消息。
* startActivity():启动一个新的 Activity。
* finish():关闭当前 ViewModel。

同时,我们还可以在 BaseViewModel 中定义一些公共的属性,如:

* context:当前 ViewModel 的上下文。
* intent:启动当前 ViewModel 的 Intent。

**四、搭建主界面** 

现在,我们可以开始搭建主界面了。首先,我们需要创建一个 Activity,并将其作为主 Activity。然后,我们需要在主 Activity 的布局文件中添加一个 FragmentContainerView。最后,我们需要在主 Activity 的代码中添加以下代码:

val fragmentContainerView: FragmentContainerView = findViewById(R.id.fragment_container_view)
val transaction = supportFragmentManager.beginTransaction()
transaction.replace(R.id.fragment_container_view, MainFragment())
transaction.commit()


这样,我们就成功地搭建了主界面。

**五、搭建底部导航栏** 

现在,我们可以开始搭建底部导航栏了。首先,我们需要在主 Activity 的布局文件中添加一个 BottomNavigationView。然后,我们需要在主 Activity 的代码中添加以下代码:

val bottomNavigationView: BottomNavigationView = findViewById(R.id.bottom_navigation_view)
bottomNavigationView.setOnNavigationItemSelectedListener { item ->
when (item.itemId) {
R.id.action_home -> {
val transaction = supportFragmentManager.beginTransaction()
transaction.replace(R.id.fragment_container_view, HomeFragment())
transaction.commit()
true
}
R.id.action_profile -> {
val transaction = supportFragmentManager.beginTransaction()
transaction.replace(R.id.fragment_container_view, ProfileFragment())
transaction.commit()
true
}
else -> false
}
}


这样,我们就成功地搭建了底部导航栏。

**六、遇到的坑** 

在搭建过程中,我遇到一个小坑。当我使用 FragmentContainerView 时,发现无法使用传统的 FragmentTransaction 来添加、删除或替换 Fragment。这是因为 FragmentContainerView 使用了一种新的 Fragment 管理机制。要解决这个问题,我们需要使用 FragmentContainerView 提供的 API 来管理 Fragment。

**七、结语** 

以上就是搭建 Android MVVM+FragmentContainerView+BottomNavigationView 基础框架的详细步骤。希望本文能够帮助读者快速掌握最新的技术栈,并搭建出自己的基础框架。