https://www.bilibili.com/vide...android
AndroidJetpack组件。Google官方对它的描述:git
今天,咱们宣布推出Navigation组件,
做为构建您的应用内界面的框架,重点是让单 Activity 应用成为首选架构
。利用Navigation组件对 Fragment 的原生支持,您能够得到架构组件的全部好处(例如生命周期和 ViewModel),同时让此组件为您处理 FragmentTransaction 的复杂性。此外,Navigation组件还可让您声明咱们为您处理的转场。它能够自动构建正确的“向上”和“返回”行为,包含对深层连接的完整支持,并提供了帮助程序,用于将导航关联到合适的 UI 小部件,例如抽屉式导航栏和底部导航。
一个很是方便的fragment页面框架,X-Library系列重要组件。设计的初衷是但愿能作一个通用的Activity做为壳,Fragment做为页面填充展现,而且可以实现自由的切换和数据交互, 点击了解XPage更多内容.github
对比特性 | Navigation | XPage |
---|---|---|
注册方式 | XML注册 | json或者@Page注册 |
参数传递 | 动态/静态都支持 | 动态/静态都支持 |
页面切换动画 | 动态支持 | 动态/静态都支持 |
容器占位数 | 支持多个占位 | 仅支持一个占位 |
便捷性 | 每次都须要编写navigation导航 | 无需重复性代码,一个@Page注解搞定 |
功能性 | 强大,支持多种使用方式 | 强大,提供多种经常使用组件和API |
拓展性 | 优秀,方便拓展 | 由于追求便捷性,所以牺牲了部分拓展性 |
目标 | 去除Activity | 去除Activity |
生态 | AndroidJetpack全家桶,Google官方出品 | 生态相对薄弱,可是也有X-Library系列支持 |
经过上面表格的对比能够看出,这两个框架各有特点。json
如下我仅从集成和页面跳转两个方面进行简单的使用比较,更多使用内容能够参阅本项目源码。项目地址: https://github.com/xuexiangjys/Navigation_XPage
因为是Google出品,全部很是方便,只须要你建立项目(New Project)的时候,选择"Basic Activity"的选项,工程会自动帮你增长Navigation的依赖。以下图:微信
若是你不想建立新的项目,也很简单,只须要在项目中增长以下依赖:架构
dependencies { ... implementation 'androidx.navigation:navigation-fragment:2.3.0' implementation 'androidx.navigation:navigation-ui:2.3.0' }
XPage的集成相对比较麻烦,不过相对也提供了一个模版工程,直接集成了XPage,拿到手就能够用了。app
若是你想集成到本身的项目中,能够参考XPage集成指南。框架
页面跳转的话,XPage就相对简单多了。
1.在res/navigation/中建立navigation导航图。ide
2.在Activity的布局中增长Fragment占位容器。下面是使用NavHostFragment
进行占位。布局
<fragment android:id="@+id/nav_host_fragment" android:name="androidx.navigation.fragment.NavHostFragment" android:layout_width="0dp" android:layout_height="0dp" app:defaultNavHost="true" app:navGraph="@navigation/nav_graph" />
3.使用NavController
进行页面导航。
NavHostFragment.findNavController(FirstFragment.this) .navigate(R.id.action_FirstFragment_to_SecondFragment);
1.随便建立一个类并继承XPageFragment
,而后在类上使用@Page进行注解
@Page public class TestFragment extends XPageFragment { ... }
2.而后在任意继承了XPageActivity
或者XPageFragment
类中使用openPage
便可。
// 使用类名打开 openPage(TestFragment.class); // 使用页面标识符打开 openPage("TestFragment");
更多使用内容能够参阅本项目源码, 项目地址: https://github.com/xuexiangjys/Navigation_XPage .
更多资讯内容,欢迎扫描关注个人我的微信公众号!
![]()