前言 在做IM的时候当用户点击输入框外的区域应该隐藏 输入法键盘 或者 其他操作区域 先放上一段代码 放在Activity中 所有的EditText外点击都会隐藏键盘 @Override public...} } } return super.dispatchTouchEvent( event ); } 有时候 我们在Activity中添加onTouchEvent方法 然后点击视图...决策向下级分发还是自身处理 onTouchEvent 自身处理逻辑 Android的分发逻辑和处理逻辑是相反的 dispatchTouchEvent –> 分发是从父View到子View 处理是从子...CView 如果点击CView 如果BView 的 onInterceptTouchEvent 返回true 那么就CView的onTouchEvent就不会触发 会触发BView的onTouchEvent...如果BView的onTouchEvent返回false 那么AView的onTouchEvent也会触发 如果BView的onTouchEvent返回true 那么AView的onTouchEvent
在CDH中,Sentry可以实现Hive/Impala的数据库,表,字段的授权,对于表的行授权,我们可以使用视图的方式来变相实现。...本文主要是介绍如何使用Sentry通过视图实现Impala的行级授权。...注:一切准备好,需要通过Sentry来控制faysona和faysonb用户的访问权限,限制用户只能访问安全视图表customer_row_security,而不能直接访问customer原表以及底层HDFS...2.我们通过Sentry然后构建安全视图的方式可以达到行级授权的目的。...3.本文的实操步骤省略了通过Sentry来控制faysona和faysonb用户只能访问安全视图表customer_row_security,而不能直接访问customer原表以及底层HDFS文件。
若想给Fragment传递参数,可在Fragment类中定义一个静态方法newInstance,在该方法中通过setArguments函数写入Bundle对象;然后重写方法onCreateView,在该方法中通过...3、竖屏的页面切换后,因为根节点是FrameLayout,所以上一页面只是界面被覆盖了,可是点击事件这些都还在。...onCreateView : 创建Fragment的视图,在onCreate之后调用。...Fragment的子类 Android还给Fragment设计了几个子类,分别用在某些特殊的场合,具体说明如下: DialogFragment : 用于对话框的碎片。...点击下载本文用到的Fragment各种用法的工程代码 点此查看Android开发笔记的完整目录
ViewBinding 是 Android Gradle Plugin 3.6 中新增的特性,用于更加轻量地实现视图绑定(即视图与变量的绑定),可以理解为轻量版本的 DataBinding。...答:Activity 实例和 Activity 视图的生命周期是同步的,而 Fragment 实例和 Fragment 视图的生命周期并不是完全同步的,因此需要在 Fragment 视图销毁时,手动回收绑定类对象...ReadOnlyProperty 是不可变属性代理,通过 getValue(...) 方法实现委托行为。...反射调用 bind 函数的目的就是获得一个 ViewBinding 绑定类对象,或许我们可以试试把创建对象的行为交给外部去定义,类似这样用一个 lambda 表达式实现工厂函数: FragmentViewBindingPropertyV2...Kotlin 高阶函数,可以把 lambda 表达式直接作为参数传递,其中 View 是函数参数,而 T 是函数返回值。lambda 表达式本质上是 「可以作为值传递的代码块」。
针对这个问题,我们开发了轻量级的页面元素代码映射插件,使用该插件可以通过点击页面元素的方式,一键打开对应代码源文件,并且精准定位对应代码行,无需手动查找,能够极大地提高开发效率和体验,实际的使用效果如下...filePath: `${filePath}` } }) .catch(error => { console.log(error) })}而监听页面元素的点击事件则通过事件代理的方式全局监听...,给document绑定了点击事件,监听键盘和鼠标点击组合事件来发起定位代码行请求,避免和页面原生的click事件发生冲突。...template模板部分字符串为数组,通过数组的索引即可精准得到每一行html标签的代码行号。...2.4.2 外部引入组件add-code-location虽然可以对本地的Vue文件进行代码路径信息的添加,但是对于外部引入或解析加载的组件目前是没有办法进行转换的,例如element ui组件,实际上的代码行信息只会添加在
换而言之, 闭包让开发者可以从内部函数访问外部函数的作用域。 在 JavaScript 中,闭包会随着函数的创建而被同时创建 确实不是很好理解,那么我来通俗讲一下。...闭包其实就是指在函数内部定义一个函数, 内部定义的函数可以访问外部函数作用域中的变量, 这样就形成了一个封闭的作用域,被称作闭包。 即使外部函数已经执行完毕,闭包仍然可以访问这些变量。...这样我们就可以在函数外部 使用一个函数内的变量。 闭包还可以用来创建“私有”变量和方法,提高代码的封装性和安全性。 闭包 最根本的作用就是实现函数内变量的一个长期存储,让它不会被销毁。...innerFunc(); 1 innerFunc(); 2 const innerFunc2 = outerFunction(); innerFunc2(); 1 innerFunc2(); 2 `` 如何在函数外部修改闭包中变量...我们想要修改这个对象,首先要获取对象,如何获取对象呢,从这个函数入手, 上面说了这个函数获取对象的属性没有做限制,除了这些基础方法之外,我们是不是还可以获取到对象原型上的方法。
5、传递数据给Activity 从dialog传递数据给Activity,可以使用“fragment interface pattern”的方式,下面通过一个改造上面的登录框来展示这种模式。...,在点击登录的时候,把activity强转为我们自定义的接口:LoginInputListener,然后将用户输入的数据返回。...6、DialogFragment做屏幕适配 我们希望,一个对话框在大屏幕上以对话框的形式展示,而小屏幕上则直接嵌入当前的Actvity中。这种效果的对话框,只能通过重写onCreateView实现。...而通过DialogFragment实现的对话框则可以完全不必考虑旋转的问题。...可以看到,传统的Dialog旋转屏幕时就消失了,且后台log会报异常~~~使用DialogFragment则不受影响。 好了,关于DialogFragment的介绍结束~~~~ 源码点击下载
DialogFragment隐藏导航栏 在 Android 中,使用 DialogFragment 显示对话框时,如果您希望隐藏系统导航栏(如状态栏和导航键),可以通过设置相关的系统 UI 标志来实现。...这需要在 DialogFragment 的视图创建和显示过程中配置窗口属性。...以下是一个完整的例子,展示了如何在 DialogFragment 中隐藏系统导航栏(使用 Kotlin): import android.os.Bundle import android.view.View...onViewCreated: 在视图创建后设置系统 UI 可见性标志,隐藏导航栏和状态栏。 onStart: 设置对话框窗口的布局参数,使其覆盖整个屏幕。...") 小结 通过在 DialogFragment 的 onViewCreated 方法中设置系统 UI 的可见性标志,可以实现隐藏系统导航栏的效果。
GuideView是一种基于DialogFragment实现的引导遮罩浮层视图的轻量级解决方案,它具备以下的特性: 响应导航按钮的动作(因为引导浮层本质是一个dialog); 链式引导层,支持设定一组的引导遮罩视图...,通过点击切换下一个试图,快读与业务进行解藕; 自动绘制半透明浮层、透明核心区以及确保目标视图和引导视图的位置。...其中的属性都通过构造器的模式,通过静态内部类Builder进行构建,属性说明如下: targetView 引导视图需要显示附着的目标视图 hintView 引导视图(不包含半透明浮层以及透明焦点区) transparentSpaceXXX...如果设置false,则需要手动设置点击hintView的特定位置关闭视图 GuideView 界面实际展示的视图对象,根据GuideViewBundle设置的属性,由GuideViewFragment创建并添加到齐视图容器中...,对外部业务完全透明无感知到一个类 GuideViewFragment 实际显示引导视图的弹窗。
onDestroyView():当Fragment的UI从视图结构中移除时调用。 onDestroy():销毁Fragment时调用。...功能如下:共有三个Fragment:F1, F2, F3,F1在初始化时就加入Activity,点击F1中的按钮跳转到F2,点击F2的按钮跳转到F3,点击F3的按钮回退到F1。...FABridge 由于通过接口的方式从Fragment向Activity进行数据传递比较麻烦,需要在Fragment中定义interface,并让Activity实现该interface,FABridge...DialogFragment DialogFragment是Android 3.0提出的,代替了Dialog,用于实现对话框。他的优点是:即使旋转屏幕,也能保留对话框状态。...setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); //将背景变为透明 setCancelable(false); //点击外部不可取消
DialogFragment 意义 它和Fragment基本一致的生命周期,因此便于Activity更好的控制管理DialogFragment。...DialogFragment的出现完美的解决了横竖屏幕切换Dialog消失的问题。...如何使用DialogFragment 有两种方法 实现onCreateDialog方法 通过继承DialogFragment并且实现它的onCreateDialog(Bundle savedInstanceState...DialogFragment并没有对Dialog的消失提供监听给调用者使用,但是我们通过源码分析得知,DialogFragment在onActivityCreate当中其实已经帮我们设置了onDismissListener...关于消失监听的两种写法如下: mListener为提供到外部使用的回调 @Overridepublic void onDismiss(DialogInterface dialog) { super.onDismiss
,花了些时间封装成一个录音的工具包,分享给大家,需要源码的 点击这里 先贴个效果图给大家看一下,看看这个录音包的功能 ?...外部调用这个对话框的时候,只需要传入一个包含录音文件信息的 RecordingItem,因为包含的信息比较多,所以最好将 RecordingItem 进行序列化。...,当开始播放录音时候,将录音文件的时长,设置进 mSeekBar 里面,播放录音的同时,运行 mSeekBar,通过监听 mSeekBar 的进度,刷新显示的播放进度。...莫过于 startPlaying() 这个方法,这个方法便是来开启播放录音的,我们首先将外部传入的有关的录音信息,设置给 MediaPlayer,然后开始调用 mMediaPlayer.start()...,有关的代码我已经上传到 Github 上了,需要的 点击这里,喜欢的话,欢迎来波 star 和 fork ---- 猜你喜欢 Android 一起来看看知乎开源的图片选择库 Android 能让你少走弯路的干货整理
fragment标签,android:name设置为实现类,即NavHostFragment;app:navGraph设置为刚才新建的导航视图。...的动作,这个是我们之前在导航视图中配置好的,会导航到SecondFragment。...注意首先通过findNavController()来获取一个NavController对象,然后调用它的navigate函数即可,当然这个函数有多种重载,比如可以传递参数,如下: public void...总结 可以看出通过Google推出的这个Navigation,可以让开发者更加优雅管理导航,同时也简化了这部分的开发工作,可视化功能可以让开发者更直观的进行管理。...除此之外,Google还提供了Safe Args Gradle插件,该插件可以生成简单的对象和构建器类,这些类支持在目的地之间进行类型安全的导航和参数传递。
前言 本文主要给大家介绍了关于Android如何实现移动小球和CircularReveal页面切换动画的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 效果图如下 ?...()方法,使小球可以移动,并判断边界 点击fab时记录坐标传到下一个页面,在下一个页面展示动画。...点击后退或者重写onBackPressed()方法,执行动画 重写Fab的onTouchListener() floatingActionButton.setOnTouchListener(new View.OnTouchListener...Build.VERSION_CODES.LOLLIPOP) { Animator animator = ViewAnimationUtils.createCircularReveal( linearLayout,// 操作的视图...Build.VERSION_CODES.LOLLIPOP) { Animator animator = ViewAnimationUtils.createCircularReveal( linearLayout,// 操作的视图
最后还要提供一个回调接口,用于主页面上处理日期和时间的选择事件,同时在确定按钮的点击事件中要触发该回调接口的方法。...要想实现一个更加完善的对话框,需要在自定义对话框时继承DialogFragment类。下面用一个简单的提示对话框进行说明,该对话框主要是显示一段文字,然后由用户选择“确定”或者“取消”。...再次重写onCreateDialog方法,往对话框界面上添加具体的视图布局,这里的视图布局可从xml文件中获取,也可在代码中一个个添加。...当然不要忘了在主页面的回调方法中对选定文件做具体处理,文件打开之后要如何读取数据,又要如何把内存中的数据保存到文件中。 下面是文件打开对话框与文件保存对话框的页面截图: ? ?...点击下载本文用到的五种自定义对话框的工程代码 点此查看Android开发笔记的完整目录
注:因为采用填充父布局的方式,这里弹出的窗口都是PopupWindow,所以点击左图中的阴影弹窗不会消失,因为阴影也是PopupWindow呀!...解决方法就是,把左图中的阴影部分用一个TextView控件填充,然后为这个TextView设置点击事件,点击TextView时让PopupWindow消失就行了。...LinearLayout.LayoutParams.MATCH_PARENT); popupWindow.setBackgroundDrawable(new BitmapDrawable()); //点击外部消失...下面通过实现onCreateView方法来实现底部弹窗。...window.setWindowAnimations(animStyle); window.setAttributes(lp); } setCancelable(outCancel);//设置点击外部是否消失
PermissionX这个开源项目起源于我今年出版的新书《第一行代码 第3版》,本来的主要目的只是为了带领读者朋友们学习如何开发并发布一个开源库。...但是放开对话框的实现方式之后,开发者需要对自己实现的对话框负责,你需要考虑用户点击确定按钮后重新请求权限,需要考虑用户点击取消按钮后回调请求结果,需要考虑对话框取消的时候如何防止权限请求事件丢失,需要考虑横竖屏旋转时怎样防止...可以看到,现在的对话框在用户体验方面无疑是完胜了之前的对话框,用户看到这样的界面也会更加赏心悦目。 那么PermissionX是如何做到的呢?...你只需要保证传递给PermissionX的文字内容都是经过翻译的即可,其他部分PermissionX会根据当前手机系统的语言进行展示。...如果想要学习Kotlin和最新的Android知识,可以参考我的新书 《第一行代码 第3版》,点击此处查看详情。
2 实现弹框: 因为后来谷歌推荐使用的DialogFragment,所以我们此处弹框也是使DialogFragment。...我们一步步来看如何使用DialogFragment来实现我们想要的弹框: 我们按照上面的布局写了具体的弹框布局代码 fragment_ios_dialog.xml: ?...经过上面二步的修改,我们可以看到了效果变成了这样: ? 那接下去如何让弹框变成在底部呢??????...所以我们的动画的代码总结下就是: ? 4 弹框的点击事件: 相关的点击事件就很简单了。只需要在onViewCreated中,通过findViewByid获取View实例,然后设置点击事件即可。 ?...6 点击空白让弹框消失问题: 当点击上方一些空白处,我们会发现我们的弹框会直接消失,而不会像我们上面点击按钮点击事件那样,弹框先往下移动再消失,因为DialogFragment默认点击弹框外的时候
举个栗子 我们创建一个Activity,并且在onCreate函数中新建并show一个DialogFragment,之后通过某种方式将APP异常杀死(RogueKiller模拟后台杀死工具),再次从最近的任务唤起...虽然被杀死了,但是onCreate函数在执行的时候还是只执行了一次啊,为什么会出现两个DialogFragment,这里其实就有一个DialogFragment是通过Android自身的恢复重建机制重建出来...为什么出现两个DialogFragment Fragment在被创建之后,如果不通过add或者replace添加到Activity的布局中是不会显示的,在保存现场的时候,也是保存了add的这个状态的,来看一下...super.dispatchSaveInstanceState保存自身的状态,再递归传递给子View。...如何处理杀死及恢复的文章。
navigationUp和popBackStack()回退上一级时有什么区别,该如何正确使用 跳转时 有时用的是Action的ID,有时用的是Fragment的ID 他俩到底在什么场景下,区分该将哪个传入方法作为参数...coding时,查看界面内容 2.节点下参数配置说明 ==注:== 节点的含义,即表示 , 图片.png 点击右上角Design...,进入Navigation,视图导航编辑页面。...(R.id.ID)会用到,即执行当前配置的Action From 所配置的当前节点,点击给那个节点配置,默认就是哪个。...bundle 设置传递参数 Options设置其他配置参数,如动画,popUpTo等,也就说,在XML中的配置,在代码中都可实现。
领取专属 10元无门槛券
手把手带您无忧上云