setSystemUiVisibility()后popupWindow以及view的第一次点击事件丢失

在view中设置setSystemUiVisibility()后view的点击事件第一次会丢失,解决方案:

setOnSystemUiVisibilityChangeListener(new OnSystemUiVisibilityChangeListener() {
        @Override
        public void onSystemUiVisibilityChange(int visibility) {
            if ((visibility & SYSTEM_UI_FLAG_HIDE_NAVIGATION) == 0) {
                // show my app view
            }
        }
   });

原因:大概调用setSystemUiVisibility后展示出view没有焦点事件,不能与界面进行交互,第一次点击 是获得焦点,可以进行交互

所以需要早listener里面手动这只UI的view,才能进行交互,具体原因没有看到官方源码及其文档,如果有错望指正,谢谢!

时间: 2024-08-12 07:01:05

setSystemUiVisibility()后popupWindow以及view的第一次点击事件丢失的相关文章

iOS给图片(其他view) 添加点击事件

iOS开发中有的时候需要给一些没有点击事件的view添加点击的方法, 比如说点击一个图片想触发某个方法该如何实现了 方法一 使用 UITapGestureRecognizer 具体的方法就是创建一个 UITapGestureRecognizer  将它添加到view上即可 事例代码 UIView *page3=[[UIView alloc]initWithFrame:SCREEN_FRAME]; [page3 addSubview:imageView3]; UITapGestureRecogni

IOS开发UISearchBar失去第一响应者身份后,取消按钮不执行点击事件的问题

在iOS开发中,使用UISearchBar的时候,当搜索框失去焦点的时候,取消按钮是默认不能点击的,如图按钮的颜色是灰色的:  这是因为此时取消按钮的enabled属性被设置为NO了,那么当我们需要让取消按钮一直可以点击的时候,就需要我们自己来改变该属性的赋值,这里举例当点击search按钮的时候,回收键盘的同时让取消按钮的可以点击,在代理方法里面添加代码如下: -(void)searchBarSearchButtonClicked:(UISearchBar *)searchBar { [sea

view.performClick()触发点击事件

1.主要作用 自动触发控件的点击事件 2.界面的布局文件  activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_h

解决Android Studio启动项目后一直处于refreshing &#39;View&#39; gradle project,快速解决亲测有效

一直处于refreshing 'View' gradle project最根本的原因是项目中所用到的gradle版本在GRADLE_USER_HOME这个路径下没有找到,所以就利用distributionUrl这个路径进行下载,但是呢下载的时候会非常非常慢,So就一直卡在了refreshing 'View' gradle project 我的这个GRADLE_USER_HOME="C:\Users\Ivan\.gradle\wrapper\dists",大家可以根据自己的路径找到 要快

用到afinal注解的项目代码混淆后某些控件view点击事件无效问题

最近一个项目上线,要求代码混淆,可混淆后某些控件的点击事件无效,后来发现是afinal注解的问题.查了半天资料,后来又问了afinal的相关人员,他们给出的解决方案是排除混淆被注解的类,这样的话意味着基本所有的activity和fragment都不能混淆,这不是我想要的. 后来反编译代码比较排除被注解的类和不排除被注解类的区别,比较发现,那些不能点击的控件的定义代码被优化掉了,被优化掉的原因就是因为用注解后,在代码中该控件的实例没有其他地方用到,所以程序就认为该代码没有被用到,就被注视掉了. 知

【Android 1.6】View和ViewGroup的touch事件分析和总结

ENV: android 1.6 目前Android版本已经到了7.0(nougat)了,Android 随着版本升级,touch事件的源码也在跟随着系统的升级而写得越来越复杂,加入了很多旁枝末节,这些旁枝末节,对于分析流程是一种干扰:由于Android的版本升级是向下兼容的,万变不离其宗,研究Android早期的版本,可以更容易理解touch事件的分发,本篇以Android1.6版本的源码进行讲解,由简及繁,理解了早期的源码,再进入高版本的研究也会更容易许多. 前言: View事件的派发其实非

Android 自定义View实现单击和双击事件

自定义View, 1. 自定义一个Runnable线程TouchEventCountThread ,  用来统计500ms内的点击次数 2. 在MyView中的 onTouchEvent 中调用 上面的线程 3. 自定义一个Handler, 在TouchEventHandler 中 处理 统计到的点击事件, 单击, 双击, 三击, 都可以处理 核心代码如下: public class MyView extends View { ...... // 统计500ms内的点击次数 TouchEvent

如何采用绝对坐标的方式动画方式移动view和如何点击view的时候获取它的cachebitmap并移动

Layout: <?xml version="1.0" encoding="UTF-8"?> <com.example.android_test.MyDragLayer xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/rootView" android:layout_width="fill_par

基于Android系统应用层与框架层剖析View点击事件

基于Android操作系统的框架层和应用层,介绍了View的绘制.触摸事件的传递流程,分析了View与用户交互时被回调的相关框架层代码和应用层代码,研究了Android应用中事件处理的相关重要机制.通过具体代码详细剖析了在Android系统下用户和View交互过程中折射出的回调机制,回调方法在系统框架的详细执行过程,以及基于回调机制的经典事件处理模型. 1 引言 Android是一种基于Linux的自由及开放源代码的操作系统,目前基于Android平台的应用日趋广泛.Android应用程序大多基