Google官方Fragment页面框架Navigation和XPage开源框架的使用对比

简介: Google官方Fragment页面框架Navigation和XPage开源框架的使用对比

简介


  • Navigation简介


AndroidJetpack组件。Google官方对它的描述:


今天,我们宣布推出Navigation组件,作为构建您的应用内界面的框架,重点是让单 Activity 应用成为首选架构。利用Navigation组件对 Fragment 的原生支持,您可以获得架构组件的所有好处(例如生命周期和 ViewModel),同时让此组件为您处理 FragmentTransaction 的复杂性。此外,Navigation组件还可以让您声明我们为您处理的转场。它可以自动构建正确的“向上”和“返回”行为,包含对深层链接的完整支持,并提供了帮助程序,用于将导航关联到合适的 UI 小部件,例如抽屉式导航栏和底部导航。


  • XPage简介


一个非常方便的fragment页面框架,X-Library系列重要组件。设计的初衷是希望能做一个通用的Activity作为壳,Fragment作为页面填充展示,并且能够实现自由的切换和数据交互, 点击了解XPage更多内容.


视频介绍


特性对比


对比特性 Navigation XPage
注册方式 XML注册 json或者@Page注册
参数传递 动态/静态都支持 动态/静态都支持
页面切换动画 动态支持 动态/静态都支持
容器占位数 支持多个占位 仅支持一个占位
便捷性 每次都需要编写navigation导航 无需重复性代码,一个@Page注解搞定
功能性 强大,支持多种使用方式 强大,提供多种常用组件和API
拓展性 优秀,方便拓展 因为追求便捷性,因此牺牲了部分拓展性
目标 去除Activity 去除Activity
生态 AndroidJetpack全家桶,Google官方出品 生态相对薄弱,但是也有X-Library系列支持

通过上面表格的对比可以看出,这两个框架各有特色。


  • Navigation侧重拓展性,适合中大型项目,方便项目的维护和拓展。


  • XPage侧重便捷性,适合中小型项目,快速开发,尤其适合新手、学生党和自由开发等独立开发者。


使用对比


以下我仅从集成和页面跳转两个方面进行简单的使用比较,更多使用内容可以参阅本项目源码。项目地址: github.com/xuexiangjys…


集成


  • Navigation


由于是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的集成相对比较麻烦,不过相对也提供了一个模版工程,直接集成了XPage,拿到手就可以用了。




如果你想集成到自己的项目中,可以参考XPage集成指南


页面跳转


页面跳转的话,XPage就相对简单多了。


  • Navigation


1.在res/navigation/中创建navigation导航图。


网络异常,图片无法展示
|


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);


  • XPage


1.随便创建一个类并继承XPageFragment,然后在类上使用@Page进行注解


@Page
public class TestFragment extends XPageFragment {
...
}


2.然后在任意继承了XPageActivity或者XPageFragment类中使用openPage即可。


// 使用类名打开
openPage(TestFragment.class);
// 使用页面标识符打开
openPage("TestFragment");


相关文章
|
3月前
|
传感器 移动开发 NoSQL
Google Earth Engine(GEE)——明尼苏达大学官方全球核南极洲DEM数据下载
Google Earth Engine(GEE)——明尼苏达大学官方全球核南极洲DEM数据下载
63 0
Google Earth Engine(GEE)——明尼苏达大学官方全球核南极洲DEM数据下载
|
9月前
|
数据可视化 JavaScript 前端开发
Google开源了可视化编程框架Visual Blocks for ML
Visual Blocks for ML是一个由Google开发的开源可视化编程框架。它使你能够在易于使用的无代码图形编辑器中创建ML管道。
170 0
|
7月前
|
JSON Cloud Native 网络协议
gRPC简介: Google的高性能RPC框架
gRPC简介: Google的高性能RPC框架
79 0
|
Android开发 数据安全/隐私保护 开发者
【Android 应用开发】Google 官方 EasyPermissions 权限申请库 ( 完整代码示例 | 申请权限 | 申请权限原理对话框 | 引导用户手动设置权限对话框 )(一)
【Android 应用开发】Google 官方 EasyPermissions 权限申请库 ( 完整代码示例 | 申请权限 | 申请权限原理对话框 | 引导用户手动设置权限对话框 )(一)
361 0
【Android 应用开发】Google 官方 EasyPermissions 权限申请库 ( 完整代码示例 | 申请权限 | 申请权限原理对话框 | 引导用户手动设置权限对话框 )(一)
|
Web App开发 存储 前端开发
如何使用 Google CrUX 分析和比较 JS 框架的性能
在美国本土流量前 100 万的站点中(按流量统计),Vue 的性能追平了 React。
131 0
如何使用 Google CrUX 分析和比较 JS 框架的性能
|
XML 开发框架 前端开发
3分钟带你了解:轻量级依赖注入框架Google Guice【享学Java】(下)
3分钟带你了解:轻量级依赖注入框架Google Guice【享学Java】(下)
|
druid Java 程序员
3分钟带你了解:轻量级依赖注入框架Google Guice【享学Java】(上)
3分钟带你了解:轻量级依赖注入框架Google Guice【享学Java】(上)
DHL
|
XML 前端开发 Java
[译] Google 官方正解是否应该学习 Kotlin
这篇文章来自 Google 开发技术推广工程师 Florina Muntenescu 分享的一篇文章,在这篇文章里精选了 Google 宣布支持 Kotlin 以来,收到的最热门的几个问题,回答了是否应该学习 Kotlin、以及如何学习 Kotlin。全文分为 译文 和 译者思考 两个部分。
DHL
202 0
[译] Google 官方正解是否应该学习 Kotlin
DHL
|
存储 算法 安全
[译][Google工程师] 刚刚发布了 Fragment 的新特性 “Fragment 间传递数据的新方式” 以及源码分析
[译][Google工程师] 刚刚发布了 Fragment 的新特性 “Fragment 间传递数据的新方式” 以及源码分析
DHL
149 0
[译][Google工程师] 刚刚发布了 Fragment 的新特性 “Fragment 间传递数据的新方式” 以及源码分析
|
编解码 定位技术 数据库
Google Earth Engine——PAD-US是美国官方的国家清单,其中包括专门用于保护生物多样性和其他自然、娱乐和文化用途的美国陆地和海洋保护区,并通过法律或其他有效手段对这些区域进行管理。
Google Earth Engine——PAD-US是美国官方的国家清单,其中包括专门用于保护生物多样性和其他自然、娱乐和文化用途的美国陆地和海洋保护区,并通过法律或其他有效手段对这些区域进行管理。
84 0
Google Earth Engine——PAD-US是美国官方的国家清单,其中包括专门用于保护生物多样性和其他自然、娱乐和文化用途的美国陆地和海洋保护区,并通过法律或其他有效手段对这些区域进行管理。

热门文章

最新文章