首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Navigation深入浅出,到出神入化,再到实战改造(三)

(APT)详解 Java AbstractProcessor实现自定义ButterKnife JavaPoet的使用指南 Android AutoService 组件化 2....创建Java库是因为在使用自定义AbstractProcessor需要使用到javax包中的相关类和接口,这个在android库中并不存在,所以需要使用到Java库。...使得开发阶段可以使用注解。编译自动扫描配置,运行时自行管理页面映射。 接下来我们开始解析这个destination.json文件 1....我们在显示,就可以指定有个页面,显示与否。比如某个页面实名不显示。后台直接下发的文件,不包含这个节点,或是我们可以用代码进行拦截。...(APT)详解 Java AbstractProcessor实现自定义ButterKnife JavaPoet的使用指南 Android AutoService 组件化 Github地址 AS4.1以上

45230
您找到你想要的搜索结果了吗?
是的
没有找到

Navigation深入浅出,到出神入化,再到实战改造(二)

了解Navigation使用后,思考几个问题 NavHostFragmnet作为路由容器,是如何解析nav_graph资源文件,从而生成NavGraph对象? 跳转,路由是如何被执行的?...android:layout_width="0dp" android:layout_height="0dp" app:layout_constraintLeft_toLeftOf...void handleOnBackPressed() { popBackStack(); } }; 注册监听后,当dispatcher分发返回键点击事件,...不能使用相同的app:startDestination="@+id/navigation_home"ID 继续回到4 解析完根节点后,会在循环中,进入到4或5️,然后递归调用。...组件(如:BottomNavigationView)完美交互,JetPack其他组件联合使用 缺点: 所有节点定义在nav_graph.xml不方便管理,灵活性较差 Fragment切换用replace

1.9K40

android onresumeview,android – 当对话框出现时不调用OnResume

我有一个带按钮的活动.当我点击按钮时会出现一个对话框.我期望在对话框出现时调用onPause方法,然后在关闭对话框时调用onResume方法.但没有一个被称为. findViewById(R.id.button...() { super.onPause(); Toast.makeText(this,”ON PAUSE ACTIVITY”,Toast.LENGTH_SHORT).show(); } 有谁知道为什么这些方法没有被调用...谢谢 解决方法: Dialog也是您的活动UI窗口的一部分.所以onPause()&当您显示或隐藏对话框,不会调用onResume()....如果你想要onPause()&显示/隐藏对话框时调用onResume(),然后在单独的活动中显示该对话框UI,并将该活动作为对话框启动....标签:android,android-activity,lifecycle 来源: https://codeday.me/bug/20190824/1709085.html 发布者:全栈程序员栈长,转载请注明出处

60310

安卓Navigation系列——进阶篇

前言 上篇对Navigation的一些概念进行了介绍,并在前言中提到了app中常用的一个场景,就是app的首页,一般都会由一个activity+多个子tab组成,这种场景有很多种实现方式,比如可以使用RadioGroup...使用Navigation+BottomNavigationView结合navigationUI扩展库,这种方式是不是相比于以往的实现方式更简单?...由此可见,导航资源文件nav_graph会被解析成一个NavGraph对象,看下NavGraph public class NavGraph extends NavDestination implements...我们知道replace方法每次都会重新创建fragment,所以使用Navigation创建的底部导航页面,每次点击切换页面当前fragment都会重建。...明明已经调用addNavigator方法添加自定义的FixFragmentNavigator了。

2.9K30

Navigation深入浅出,到出神入化,再到实战改造

navigationUp和popBackStack()回退上一级时有什么区别,该如何正确使用 跳转 有时用的是Action的ID,有时用的是Fragment的ID 他俩到底在什么场景下,区分该将哪个传入方法作为参数...使用和核心方法 1.创建NavGraph 图片.png <?...Fragment enter:进入动画 Exit :退出动画 Pop Enter : 上一节点出栈当前节点的动画 Pop Exit: 上一节点回退栈到当前节点的动画 Pop To 按返回键会调用...拦截返回键的点击事件,这样Fragment就可以想Activity一样,具有回退,返回事件 配置路由XML文件,然后加载进NavHostFragment中 app:navGraph属性,对应的就是NavGraph...代码实现路由跳转和方法解析 3.1 核心方法 Acitivty#findNavController() 传入navGraph id Fragment#findNavController() 直接调用

55410

1. Jetpack源码解析---看完你就知道Navigation是什么了?

背景 之前已经翻译过了Google官方的CodeLabs上面的教程,教程很详细,代码在Github上也可以找到,本篇文章旨在自己的APP上使用效果及演示Demo,来具体的使用Navigation。...基本使用 虽然在之前的文章中已经很详细的介绍了Navigation,但是这里也简单的叙述一下我在项目中的具体使用: 2.1 Navigation+DrawerLayout+ToolBar 我们可以通过使用...我们可以在naviagtion布局中使用标签, name是我们传参的key argType是参数类型 defaultValue默认值 nullable 是否可空 <argument android...我们一般手动切换Fragment可以调用这个方法,最后就是跟踪到这里。...这样就将组件的状态切换绑定起来了,当fragment切换,上面提到的接口分发,去切换布局按钮等状态。

2.5K30

Android-Jetpack笔记-Navigation之Fragment支持复用

上篇文章Android-Jetpack笔记-Navigation之Fragment使用提到,每次切换目的地,fragment是反复销毁重建的,按照谷歌推荐的1个APP只需1个activity的思路开发,...Jetpack笔记代码 本文源码基于SDK 29,IDE是Android studio 3.5.3 解决 给上篇文章的项目加些日志,从面板页切到通知页,再从通知页切回面板页,查看日志, ?...可见面板页发生了销毁重建,接着创建一个FixFragmentNavigator继承FragmentNavigator并重写navigate方法,直接把父类的实现copy过来,第1步,在调用fragment...FixFragmentNavigator extends FragmentNavigator { } 至此FixFragmentNavigator就写好了,完整代码可以查看Jetpack笔记代码,接下来要如何把他使用进去呢...前边提到的自定义导航器需要指定名字@Navigator.Name("fixFragment"),是因为不同类型的目的地(页面)需要使用不同的导航器,在NavigatorProvider里有个map存储了多个导航器

2K20

1. Jetpack源码解析---看完你就知道Navigation是什么了?

背景 之前已经翻译过了Google官方的CodeLabs上面的教程,教程很详细,代码在Github上也可以找到,本篇文章旨在自己的APP上使用效果及演示Demo,来具体的使用Navigation。...基本使用 虽然在之前的文章中已经很详细的介绍了Navigation,但是这里也简单的叙述一下我在项目中的具体使用: 2.1 Navigation+DrawerLayout+ToolBar 我们可以通过使用...我们可以在naviagtion布局中使用标签, name是我们传参的key argType是参数类型 defaultValue默认值 nullable 是否可空 <argument android...我们一般手动切换Fragment可以调用这个方法,最后就是跟踪到这里。...这样就将组件的状态切换绑定起来了,当fragment切换,上面提到的接口分发,去切换布局按钮等状态。

2.1K20

Android_Jetpack组件---Naviagtion源码解析

背景 之前已经翻译过了Google官方的CodeLabs上面的教程,教程很详细,代码在Github上也可以找到,本篇文章旨在自己的APP上使用效果及演示Demo,来具体的使用Navigation。...基本使用 虽然在之前的文章中已经很详细的介绍了Navigation,但是这里也简单的叙述一下我在项目中的具体使用: 2.1 Navigation+DrawerLayout+ToolBar 我们可以通过使用...我们可以在naviagtion布局中使用标签, name是我们传参的key argType是参数类型 defaultValue默认值 nullable 是否可空 <argument android...我们一般手动切换Fragment可以调用这个方法,最后就是跟踪到这里。...这样就将组件的状态切换绑定起来了,当fragment切换,上面提到的接口分发,去切换布局按钮等状态。

2.1K10

Android使用Opengl录像添加水印

使用的是OpenGL开发的,刚开始实现的是静态水印,后面才实现的动态水印。 先上效果图,左下角的是静态水印,中间偏下的是时间水印(动态水印): ?...一、静态水印 实现原理:录像是通过OpenGL把图像渲染到GLSurfaceView上的,通俗的讲,就是把图片画到一块画布上,然后展示出来。添加图片水印,就是把水印图片跟录制的图像一起画到画布上。...这是加载纹理跟阴影的Java类 package com.audiovideo.camera.blog; import android.opengl.GLES20; /** * Created by fenghaitao...先写到这,后面是调用,迟点再写。...requestrender时调用此方法(=需要更新纹理) * 如果不在脏设置rendermode,则此方法的最大调用速度为60fps。

1.5K10

安卓activity生命周期_请描述activity的生命周期

Activity作为Android的四大组件之一,非常的重要,也是最常用的四大组件,使用Activity必须要在AndroidManifest中进行注册,那么作为Android的基础,Activity的生命周期你是否完全掌握了呢...备注:因为如果跳转下一个Activity系统会先调用上一个Activity的onPause方法,所以一定不能在onPause方法中进行耗时操作! 异常情况下的生命周期。...Activity 的瞬态(UI 的状态)切勿使用它来存储持久性数据,而应使用onPause在用户离开 Activity 后存储持久性数据,例如应保存到数据库的数据。...Android 框架中几乎每个小部件都会根据需要实现此方法,以便在重建 Activity 自动保存和恢复对 UI 所做的任何可见更改。...例如,EditText 小部件保存用户输入的任何文本,CheckBox小部件保存复选框的选中或选中状态。您只需为想要保存其状态的每个小部件提供一个唯一的 ID(通过 android:id 属性)。

54510

写一个MVVM快速开发框架:谈一谈“单Activity+多Fragment”模式

"true" app:navGraph="@navigation/nav_main"/> 组件化中使用Navigation 我们通常使用底部导航栏将app划分出不同的功能,这些都是单独的...方式一: google的demo中是在MainActivity中创建一个main_navGraph,其中包含了不同子moduel的navGraph ,如下: <?...也许是我使用姿势不对?...方式二: 因为app module本身是需要依赖各个子moduel的,我们可以在navGraph直接使用子moduel中的Fragment,主页面只需加入各个module的主Fragment就行了:...menu中的id与navGraph中设置成一样的啊哈哈哈哈 基本上ARouter+Navigation可以满足大部分的页面跳转需求,但还是有一些难点,就是不同moduel之间的navGraph怎么相互控制

1.5K40
领券