可以把Fragment设计成可以在多个Activity中复用的模块,为了在Android上创建动态的、多窗口的用户交互体验,你需要将UI组件和Activity操作封装成模块进行使用,在activity中你可以对这些模块进行切入切出操作。可以使用Fragment来创建这些模块,如果一个fragment定义了自己的布局,那么在activity中它可以与
1. Fragment重建问题分析 1.1 配置变更 当设备配置发生变化(如屏幕旋转)时,Android系统会销毁当前的Activity并重新创建它。如果Fragment是通过Activity的FragmentManager添加的,那么Fragment也会被销毁并重新创建。 1.2 Navigation组件行为 在Navigation组件中,当用户导航到不同的目标时,当前的Fragment可能会被销毁并替换为新...
{NavGraph navGraph=newNavGraph(newNavGraphNavigator(provider));//用自定义的导航器来创建目的地FragmentNavigator.Destination destination1=fragmentNavigator.createDestination();destination1.setId(R.id.navigation_home);destination1.setClassName(HomeFragment.class.getCanonicalName());destination1.setLabel(getResou...
<navigation xmlns:android=" xmlns:app=" xmlns:tools=" app:startDestination="@id/firstFragment"><fragmentandroid:id="@+id/firstFragment"android:name="com.example.FirstFragment"tools:layout="@layout/fragment_first"/><fragmentandroid:id="@+id/secondFragment"android:name="com.example.SecondFragment"...
Navigation是一种导航的概念,即把Activity和fragment当成一个个的目的地Destination,各目的地形成一张导航图NavGraph,由导航控制器NavController来统一调度跳转,本文会先简单分析下AS自带的示例代码。 Jetpack笔记代码 本文源码基于SDK 29,IDE是Androidstudio 3.5.3 ...
android:id="@+id/action_cameraFragment_to_startFragment2"app:destination="@id/startFragment"/></fragment></navigation> 可以看出navigation内部包含两个标签,一个是fragment,一个是action。action就是刚才图形化的连线,每个跳转动作都被定义成了一个action,我们在代码中控制页面跳转就需要用到这些action。
Navigation是一种导航的概念,即把Activity和fragment当成一个个的目的地Destination,各目的地形成一张导航图NavGraph,由导航控制器NavController来统一调度跳转,本文会先简单分析下AS自带的示例代码。 Jetpack笔记代码 本文源码基于SDK 29,IDE是Android studio 3.5.3 ...
已登录用户打开 App,直接展示 MainFragment nav_graph.xml 结构如下: MainActivity.java: @OverrideprotectedvoidonCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);NavControllernavController=Navigation.findNavController(this, R.id.nav_host_fragment_content_main);// 已经登录了if(Utils.isLogge...
NavHostFragment是导航视图的展示容器。 <fragmentandroid:id="@+id/nav_host_fragment"android:name="androidx.navigation.fragment.NavHostFragment"android:layout_width="0dp"android:layout_height="0dp"app:defaultNavHost="true"app:layout_constraintBotto...
Navigation主要由三部分组成: Navigation graph:一个包含所有导航相关信息的 XML 资源 NavHostFragment:一种特殊的Fragment,用于承载导航内容的容器 NavController:管理应用导航的对象,实现Fragment之间的跳转等操作 二、基本使用 2.1 添加依赖 dependencies { def nav_version = “2.3.1” ...