首页 > 其他分享 >Android 12.0 framework层实现点击空白处自动隐藏输入法功能

Android 12.0 framework层实现点击空白处自动隐藏输入法功能

时间:2024-07-27 11:27:59浏览次数:10  
标签:输入法 framework 点击 12.0 事件 Activity 自动隐藏

1.前言
 

在12.0的系统rom产品定制化开发中,在进行一些定制开发中,在某些无源码的app中,如果app中没实现点击空白区域外
自动隐藏输入法功能的时候,那么就需要在系统framework层中进行相关功能的开发,接下来看下相关功能的实现

2.framework层实现点击空白处自动隐藏输入法功能的核心类

frameworks\base\core\java\android\app\Activity.java

3.framework层实现点击空白处自动隐藏输入法功能的核心功能分析和实现

关于系统中点击事件分发流程,就是在当用户触摸屏幕时,会产生一个touch事件,这个touch事件(motionEvent)传递到某个具体的view处理的整个过程
用户触摸屏幕会产生一个事件流(ACTION_DOWN -> ACTION_MOVE -> ACTION_UP)
一般来说,view负责处理action_down事件后,会由这个view来处理接下来的事件,所以就是说主要还是在Activity.java的
监听事件分发流程中来处理,
下面看下在app中如何实现点击空白区域自动隐藏输入法功能

当手指点击屏幕时,一般来说,事件都会经过Activity,然后由Activity往下传递到ViewGroup,然后ViewGroup再分发给它的子view,即

Activity——ViewGroup1——ViewGroup2——....—— View

我们通常会对一个View做事件监听,那么其中有什么机制呢?
【View的onTouch、onTouchEvent、onClick、

标签:输入法,framework,点击,12.0,事件,Activity,自动隐藏
From: https://blog.csdn.net/baidu_41666295/article/details/140644244

相关文章

  • 在Django REST framework (DRF) 中,`request.query_params` 和 `request.data` 区别
    在DjangoRESTframework(DRF)中,request.query_params和request.data都是用来获取请求中的数据,但是它们之间有一些关键的区别:request.query_params这个属性用于获取URL查询字符串中的参数。例如,在URLhttp://example.com/api/?param1=value1&param2=value2中,request.quer......
  • 创建SpringBoot项目时出现Cannot resolve plugin org.springframework的解决方法 原
    创建SpringBoot项目时出现Cannotresolvepluginorg.springframework的解决方法原因是添加依赖时未添加版本号原因是添加依赖时未添加版本号解决方法:在pom.xml文件中的依赖添加版本号原来:<plugin><groupId>org.springframework.boot</groupId><a......
  • C#使用PostgreSQL及其衍生产品GaussDB时(Npgsql.EntityFrameworkCore.PostgreSQL)过程中
      PostgreSQ作为开源免费的数据库,现在正在火热的占据市场,它衍生产品,比如GaussDB在国产化替代中使用比较多,然而它们或多或少存在一个兼容问题,或者说是版本之间的问题,所以这里记录几个在使用过程中碰到的问题,做个笔记,后续有新的问题就再记录。  问题一:0A000:DISCARDstatement......
  • org.springframework.beans.factory.BeanCreationException: Error creating bean wit
    场景:springcloud的服务service-order 启动和运行正常application.yml内容server:port:8007servlet:context-path:/service-orderspring:cloud:nacos:discovery:server-addr:192.168.56.30:8848application:name:service-......
  • Robot Framework 数据库库调用 Oracle 存储过程失败,并出现字符到数字转换错误
    我有一个OraclePL/SQL程序,我可以直接调用如下,没有问题:BEGINexample_package_name.example_procedure(p_item_no=>123456,p_send_now=>true);END;(注意:p_item_no期望aNUMBER和p_send_now期望aBOOLEAN)我正在......
  • Robot Framework安装与使用
    RobotFramework是一个基于Python的通用自动化测试框架,采用关键字驱动测试(Keyword-DrivenTesting)方法。官网:https://robotframework.org/安装RobotFrameworkpipinstallrobotframework#Web测试,还需要安装SeleniumLibrarypipinstallrobotframework-seleniumlibrary......
  • 如何在.NET Framework,或NET8以前的项目中使用C# 12的新特性
    前两天发了一篇关于模式匹配的文章,链接地址,有小伙伴提到使用.NET6没法体验C#新特性的疑问,其实呢只要本地的SDK源代码编译器能支持到的情况下(直接下载VS2022或者VS的最新preview版本)只需要做很小的改动就可以支持的.目前仍然还有一些小伙伴因为历史原因可能还在写.NETFra......
  • 解决.Net Framework3.5安装报错0x80070490
    .NETFramework是Windows平台下的软件框架,包括1.0~4.8多个版本,向下兼容。Win7默认安装的是3.5版,早期Win10版本默认安装的4.6版,本文分享如何在Win10和Win11上离线安装.NETFramework3.5,并解决安装报0x80070490找不到元素的错误。问题描述在早些年,有的软件安装时强制验证.NETFr......
  • 将 .NET Framework 应用程序更新到 .NET Core。这是一个 VB.NET Windows 服务
    我有一个用VB.NET编写的有点旧的.NET4.7Windows服务。我想将其升级到.NETCore8.0,但升级向导似乎不想处理大量工作如果.NETCore支持VB.NETWindows服务,我找不到任何真正的内容....我可以找到大量创建控制台应用程序等的C#示例,但没有找到VB.NET的任何内......
  • 电脑windows7系统环境Framework 4.6.2无法安装的解决方法
    一、错误1、尚未安装.net4.6,无法建立到信任根颁发机构的证书链的错误2、出现错误的原因:在安装Microsoft.NETFramework4.6.2脱机包时提示无法建立到信任根颁发机构的证书链二、解决方法1、实际上是要安装一个根证书MicrosoftRootCertificateAuthority2011.cer2、开始......