创建好之后如下图所示:
从这个图来看,项目本身没有任何问题,为了保险起见,建议先运行一下。
Navigation 是JetPack中的组件,感兴趣可以去查看Google JetPack官方文档。而如果你想单独查看的Navigation 内容,可以点击Navigation 文档。
打开你的app下的build.gradle。在dependencies闭包中添加如下依赖:
def nav_version = “2.3.2”
// navigation依赖 ui 和 fragment
implementation “androidx.navigation:navigation-fragment:$nav_version”
implementation “androidx.navigation:navigation-ui:$nav_version”
添加位置如下图所示:
添加好之后,点击Sync进行项目同步,同步时会自动下载这些依赖库并配置到你的项目中。
添加完了依赖,就得先来简单介绍一下这个Navigation了,Navigation分为三大件:导航图、NavHost、NavController。
为了方便我介绍下面的三个概念,这里假设有A、B、C三个Fragment。
现在要从A切换到B
导航图:读取这个切换目标及路径
NavHost:包含A、B、C的容器,用于显示Fragment。
NavController:在得知切换目标时,控制NavHost去显示B这个Fragment。
这么一说,你是否有一些理解了呢?
鼠标右键点击res → New → Android Resource File
然后会弹出一个窗体,在这个窗体里面设置文件名称,并选择文件类型,然后点击OK。
然后查看这个nav_graph.xml,你会发现有报错
不过先不用担心,因为这个里面是用来指向Fragment的,但是现在没有,那就创建。
然后先在com.llw.navigation下新建一个fragment包。
然后建一个Fragment类,这里命名我就用ABCDE来命名了,实际开发中是肯定不能这样的。
然后在layout新建一个布局fragment_a.xml
然后修改一下这个布局
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android=“http://schemas.android.com/apk/res/android”
android:layout_width=“match_parent”
android:layout_height=“match_parent”
android:gravity=“center”
android:orientation=“vertical”>
<TextView
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
android:text=“A Fragment”
android:textColor=“#000”
android:textSize=“24sp” />
布局有了,然后进入到AFragment中绑定这个布局的id。
public class AFragment extends Fragment {
&