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

视频介绍

https://www.bilibili.com/vide…

简介

  • 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偏重便捷性,适宜中小型我的项目,疾速开发,尤其适宜老手、学生党和自在开发等独立开发者。

应用比照

以下我仅从集成和页面跳转两个方面进行简略的应用比拟,更多应用内容能够参阅本我的项目源码。我的项目地址: https://github.com/xuexiangjys/Navigation_XPage

集成

  • 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,拿到手就能够用了。

  • 简化版的Android空壳模版工程
  • Android空壳模版工程

如果你想集成到本人的我的项目中,能够参考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");

更多应用比照

更多应用内容能够参阅本我的项目源码, 我的项目地址: https://github.com/xuexiangjys/Navigation_XPage .

微信公众号

更多资讯内容,欢送扫描关注我的集体微信公众号!

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理