navigation
两个Fragment如何实现类似Activity之间的跳转和传值?在AS3.2 beta版 发布时,出现了一个新的架构组件navigation,可以实现Fragment之间的跳转以及Fragment跳转到Activity。
1.引入依赖:
implementation 'Android.arch.navigation:navigation-fragment:1.0.0-alpha01'
implementation "android.arch.navigation:navigation-runtime:1.0.0-alpha01"
2.创建Navigation配置文件在res下创建navigation目录,新建Navigation resource file,这里就叫nav_graph.xml, 在设计视图下,可以添加fragment和Activity,然后通过连线的的方式添加之间的跳转关系,具体的触发事件,后面在代码中设置,这里只是设计了页面间的跳转关系
3.在需要使用Navigation的主Activity的布局文件中设置NavHostFragment, 参考代码如下:
<?xml version="1.0" encoding="utf-8"?>
<Framelayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:APP="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".StartActivity">
<fragment //用于展示的容器
android:id="@+id/my_nav_host_fragment"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:defaultNavHost="true"
app:navGraph="@navigation/nav_graph"/>
</FrameLayout>
4. 在Fragment中实现跳转 Bundle bundle = new Bundle();
bundle.putString("uid", "111");
Navigation.findNavcontroller(getView()).navigate(R.id.action_startFragment_to_userprofileFragment, bundle);
传递的参数获取:String userId = getarguments().getString(UID_KEY);
要想返回前一个FragmentNavigation.findNavController(getView()).popBackStack();
更多细节参考官方文档:https://developer.android.Google.cn/topic/libraries/architecture/navigation/
相关阅读
本篇文章主要记录Firebase在Android上的学习实践,对Firebase进行实践与测试其在中国的使用情况、GCM迁移到FCM、及Firebase与Googl
Android CheckBox和RadioButton使用
一、CheckBoxCheckBox(复选框)是Android中的复选框,主要有两种状态:选中和未选中。通过isChecked方法来判断是否被选中,当用户单击时可
Android5.01.采用全新Material Design设计风格。Material Design,扁平化的设计理念。新的视觉语言,在基本元素的处理上,借鉴了传统的
MPAndroidChart之PieChart饼状图 曾梦想仗剑走天涯,看一看世界的繁华。 效果图: Activity: package com.wentong.administrator.mp
Android的程序文件为APK格式,APK文件是Android最终的运行程序,是Android Package的全称,类似于Symbian操作系统