分享一个可以监听软键盘显示隐藏的布局。

Android动态获取软键盘的高度,监听软键盘显示或则隐藏。 做Android开发很多年了,写博客写的很少,主要是不知道写什么,也不知道大家爱看什么?在不知道大家的爱好之前,我就写一些项目里面比较常用的需求。如果大家在看的过程当中有任何不懂的可以提出来,我会一一的给大家回答,也希望广大网友们参与进来,我们一起在安卓的开发海洋里面行驶。 今天我要跟大家分享的是安卓开发当中怎么动态获取软键盘的高度、软键盘是否打开?以及关闭的监听,我相信这个问题在做安卓开发比较... 阅读详情
工作偶然遇到一个问题。就是在scrollview中沉底的位置有一个EditText,这个EditText在获取光标之后,会被软键盘自动覆盖UI显示。
            解决办法:在清单文件中找到该类 加入如下声明:
                android:windowSoftInputMode="adjustPan"
            即可完美解决。

            做类似numpicker的时候会遇到问题,简单来想让中间的EditText实现TextChangeListener就可以完成一个范围段的控制。
            可是实际还是出了很多问题。
            比如一个最尖锐的问题就是假如范围是10-100。这个时候用户想输入40,那么删除了0会立马变成40 同理,多加一位会立马变成100做了这个功能反而成了累赘。所以就得设法监听软键盘的弹出和关闭。

            如下自定义布局作为跟布局:    


package com.minxindai.app.view;

			import android.content.Context;
			import android.util.AttributeSet;
			import android.util.Log;
			import android.widget.RelativeLayout;
			
			public class KeyboardLayout extends RelativeLayout {
			private static final String TAG = KeyboardLayout.class.getSimpleName();
			public static final byte KEYBOARD_STATE_SHOW = -3;
			public static final byte KEYBOARD_STATE_HIDE = -2;
			public static final byte KEYBOARD_STATE_INIT = -1;
			private boolean mHasInit;
			private boolean mHasKeybord;
			private int mHeight;
			private onKybdsChangeListener mListener;
		
			public KeyboardLayout(Context context, AttributeSet attrs, int defStyle) {
				super(context, attrs, defStyle);
			}
		
			public KeyboardLayout(Context context, AttributeSet attrs) {
				super(context, attrs);
			}
		
			public KeyboardLayout(Context context) {
				super(context);
			}
		
			/**
			 * set keyboard state listener
			 */
			public void setOnkbdStateListener(onKybdsChangeListener listener) {
				mListener = listener;
			}
		
			@Override
			protected void onLayout(boolean changed, int l, int t, int r, int b) {
				super.onLayout(changed, l, t, r, b);
				if (!mHasInit) {
					mHasInit = true;
					mHeight = b;
					if (mListener != null) {
						mListener.onKeyBoardStateChange(KEYBOARD_STATE_INIT);
					}
				} else {
					mHeight = mHeight < b ? b : mHeight;
				}
				if (mHasInit && mHeight > b) {
					mHasKeybord = true;
					if (mListener != null) {
						mListener.onKeyBoardStateChange(KEYBOARD_STATE_SHOW);
					}
					Log.w(TAG, "show keyboard.......");
				}
				if (mHasInit && mHasKeybord && mHeight == b) {
					mHasKeybord = false;
					if (mListener != null) {
						mListener.onKeyBoardStateChange(KEYBOARD_STATE_HIDE);
					}
					Log.w(TAG, "hide keyboard.......");
				}
			}
		
			public interface onKybdsChangeListener {
				public void onKeyBoardStateChange(int state);
			}
			}

    

这样的话,只需要将其放入所需的页面的布局,然后通过setOnkbdStateListener方法监听软键盘的隐藏和弹出即可,非常的实用。

Android 监听EditText输入框软键盘显示及隐藏 由于,安卓系统并没有提供软键盘弹入和弹出的方法。所以,我们需要自己自定义一个监听软件盘的类。大致实现原理就是监听视图树中布局或可视状态发生改变超过一定的数值,来监听软键盘的弹入弹出事件。 阅读详情

相关推荐

Android软键盘的监听,显隐控制以以及弹出遮挡布局的解决方法(用于fragment,dialog)

项目中需要对软键盘进行监听,控制它的显隐以及解决弹出时遮挡部分布局,本例子是在fragment和dialog使用,activity中未测试,不过从代码上看是可以使用的。 工具类如下: public class SoftKeyBoardListener { public static boolean softKeyFlag;//软键盘显隐标记.true为显示 public st...

sunyFS的博客 1311

Android 监听软键盘显示和隐藏

相关文章 Android TextView控件 Android EditText控件 Android 监听软键盘显示和隐藏 Android Span应用 1. 监听软键盘 由于官方没有提供相关的监听,只能通过界面布局来判断软键盘显示和隐藏。 (1) 通过OnLayoutChangeListener来监听 getWindow().getDecorView().addOnLayoutChangeLis.........

假装你是大灰狼的专栏 7020

Carla自动驾驶仿真一:快速安装与运行Carla

网上有不少的Windows版本的Carla的安装教程,这里简单记录下自己安装过程,写的也比较详细,基本不用看其他文章。

zataji的博客 2万+

Android监听软键盘的弹起和隐藏

做安卓键盘功能的时候,要是需求不单单是输入文字,比如要输入表情,图片等的时候,就需要监听键盘的弹起和隐藏。在实际的项目中也遇到了这样的需求。接下来就写个博客,记录一些方法。 实现原理就是监听自定义控件的高度变换得键盘的弹起和隐藏状态。 都是程序员都心急。直接上代码: MainActivity: package com.example.testsoftinput;

u010052279的专栏 1015

差分运放电路输出电压偏置设计解析

差分运算放大电路是信号处理中的基础模块,通过差分对管结构实现共模抑制与差模放大。其核心原理基于运放的虚短虚断特性,当电阻网络满足对称条件时,输出电压与输入差分成正比。在工业测量系统中,由于ADC通常仅支持正电压输入,需要通过偏置电路将双极性信号平移至正电压范围。典型设计采用精密基准电压源和匹配电阻网络,既保持信号完整性又满足系统接口要求。本文以-100V高压测量为例,详细解析了分压网络设计、参考电压选取以及电阻匹配等关键技术要点,为传感器接口电路设计提供实践参考。

weixin_35750747的博客 471

Plant Simulation 实战指南:从二次分配问题到优化布局设计

本文是一份Plant Simulation实战指南,详细讲解了如何利用该仿真软件解决工厂布局中的二次分配问题。通过从数据准备、模型搭建到集成遗传算法进行自动化优化的完整流程,帮助工程师在数字孪生环境中高效寻找最优设备布局方案,从而显著降低物流成本,提升生产效率。

i1j2k的博客 565

检测软键盘的弹起与隐藏【绝对经典,好用】

转自:http://www.eoeandroid.com/thread-157446-1-1.html 今天看到社区里面有人问关于如何检测软键盘的弹起和隐藏事件。正确处理好软键盘的弹起和隐藏可以大大提升应用的体验。这一点,“切客优惠”做的很好。     在软键盘弹起后,下面的分享内容自动隐藏,并且在titlebar上,显示签到按钮。这个是一个非常贴心的设

liangguo03的专栏 1万+

本地大模型5:在pycharm用python调用ollama本地大模型

python调用ollama本地大模型

weixin_74825941的博客 8377

Android 一个比较完善的输入法状态监听 KeyBoardWatcher 实现

Android 一个比较完善的软键盘状态监听 KeyBoardWatcher 实现 相信大家都会遇到项目中有EditText控件需要监听输入法软键盘状态的需求 然后你会发现在查找API的时候,并没有这样的监听接口以及靠谱的API 不靠谱的方案: 方案1: (context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMetho...

梁健雄的博客 1685

正交试验minitab

1.创建正交试验 2.根据自己的实验选择水平数和因子数,并选定一个正交表 3.得到正交表 4.填写实验结果 5.进行正交分析 点击结果,点击分析 6.得到分析结果 7.方差分析 选择响应变量与因子,点击确定 得到方差分析的结果 ...

a999999123的博客 1万+

强化学习Q值迭代的几何视角:从策略区域到快速收敛

在强化学习中,Q值迭代是求解最优策略的核心算法,其理论基础建立在贝尔曼不动点定理之上。该算法通过迭代更新Q函数,使其逐步逼近最优值函数。从几何视角看,整个Q函数空间可被视为一个高维流形,每个Q函数对应流形上的一个点,而贝尔曼最优算子则定义了流形上的变换轨迹。理解这一几何结构,特别是由策略超平面划分出的凸多面体区域,对于分析算法的收敛行为至关重要。在实际工程中,传统Q值迭代可能在高维或稀疏奖励环境下收敛缓慢,甚至陷入策略高原。通过引入策略区域缓存与自适应学习率等几何启发方法,可以更高效地导航策略空间,加速策略

weixin_30444111的博客 319

监听软键盘的弹出与收起(近乎完美)

监听软键盘的弹出与收起的实现方法 由于这周末单休,然后,然后,然后 我一个不小心几乎是睡了一天,深感恐怖,于是我觉得我得做点什么,就想到了前几天两个群友问的关于软键盘的问题,正好我之前在工作中处理过,所以便写个博客记录分享一下 在这里,我写两个实现的方法。 1.是利用OnLayoutChangeListener的监听,在这里我简单的说下过程,因为应群友大大的建议,写的注释还是挺多的,也比较简

当你的才华满足不了你的野心的时候,那么你应该静下心来学习. 1万+

2019年上交电院计算机直博保研经历

本人选报的是上交六月一日在武汉举办的直博选拔,五月三十一日到达酒店,地点在武汉大学旁边(PS:上交是不管住宿、来回车票的,~划重点~包括夏令营),入住后当然是紧张的准备英语面试等等内容了,当天我是排在了下午面试,感觉还很好,上午可以多睡一会,最好能够去踩踩点上午,然后下午面试一定要早去,说是一点开始,但是老师十二点半就开始让学生进去了,有一个同学排在第二个,但是当时叫到他时还不到一点,没到,最后据...

LifeMaker的博客 4899

android设置布局滑动,设置android时如何滚动我的布局:windowSoftInputMode =“adjustPan”?...

最后,我找到了我的问题的解决方法,所以我想分享给某人可能会在将来遇到同样的问题.我的布局简要描述如下://all stuff controls:editview,textview,....我创建自定义类myRelativeLayout扩展RelativeLayoutpublic class myRelativeLayout extends RelativeLayout{public interfa...

weixin_33960567的博客 555

宇树G1语音助手完整开发指南(上)——从零构建智能知识库对话系统

本文将详细介绍如何为宇树G1人形机器人开发一个,实现"唤醒 → 对话 → 查询 → 回复"的智能助手功能。

m0_47999117的博客 787

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Android 修改软件盘的回车键为搜索键

xml中: <EditText android:id="@+id/et_keyword" android:layout_width="0dp" android:layout_height="@dimen/qb_px_35" android:layout_weight="1" android:background="@null" android...

ssssxy的博客 340

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

EditText软键盘弹出显示光标否则隐藏

分享 EditText 常用的用法,点击 EditText 获取焦点显示软键盘和光标否则隐藏,效果图如下: 代码如下: public class MainActivity extends AppCompatActivity { private SoftKeyBoardListener softKeyBoardListener; private EditText editT...

wuqingsen1的博客 1639

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Android 在Service中监听软键盘显示状态

最近在做一个悬浮窗功能时,遇到了问题,就是当软键盘弹出时控制悬浮窗隐藏,软键盘关闭时又显示出来。毕竟弹出软键盘时被悬浮窗阻挡用户体验不好。 上网百度(额,英语是硬伤)各种资料各种苦逼,差不多都是在Activity 中监听布局变化的。 经过各种折磨后终于想到了,通过获取正在运行的进程列表遍历出 拿到包名再和默认输入法包名比较。 代码如下: /** * 软键盘状态判断 *

爱吃鹌鹑蛋的博客 1844

android 检测软键盘的弹起与隐藏【绝对经典,好用】

转载地址:http://www.eoeandroid.com/thread-157446-1-1.html 今天看到社区里面有人问关于如何检测软键盘的弹起和隐藏事件。正确处理好软键盘的弹起和隐藏可以大大提升应用的体验。这一点,“切客优惠”做的很好。     在软键盘弹起后,下面的分享内容自动隐藏,并且在titlebar上,显示签到按钮。这个是一个非常贴心的设计,用户体检大大提升。 这

1214

解决移动端软键盘弹起底部固定布局被顶上去问题和屏幕背景被压缩问题

在前端页面布局中经常会把一些按钮通过fixed或absolute固定到底部,但如果页面上有input或textarea被点击获取焦点时,在移动端上软键盘弹起时就会把这些固定到底部的布局顶上去,有时会十分影响美观,下面是在Vue项目中如何通过隐藏的方式实现不被顶上去的

刘运召的博客 8197

Android实现软键盘弹出布局不顶起

我整理的一些关于【XML】的项目学习资料(附讲解~~)和大家一起分享、学习一下:https://d.51cto.com/Hpqqk2Android实现软键盘弹出布局不顶起的技巧 在Android应用开发中,软键盘的弹出有时可能会使当前布局被顶起,影响用户体验。为了提供更好的用户体验,开发者需要考虑如何让布局在软键盘弹出时...

weixin_40925349的博客 849

Android机型适配之软键盘和输入法

Android机型适配问题是不少Android开发人员转ios开发的原因,因为,Android机型实在是太多了,各大门派纷纷定制rom,碎片化相当严重。以下是我总结的一些些资料 一、软键盘显隐问题 定义一个mIMManager = (InputMethodManager) mDescEt.getContext().getSystemService(Context.INPUT_METHO

zzwwws的专栏 1763

Android 软键盘弹起引起布局的变化

相信微信聊天大家都不陌生,大家在聊天的时候会发现,每次点击输入框后弹起的软键盘,会让当前的聊天界面整体向上移动。这种效果,要如何实现呢?在谷歌了很多资料后,尝试了以下三种方式: 1.直接在AndroidManifest中修改android:windowSoftInputMode=”stateAlwaysHidden|adjustPan” 然而修改完后运行,依然没啥用处。 2.//判断隐藏软键盘

xuwiliam的博客 2073

uniapp在移动端软键盘监听(弹出,收起),及影响定位布局的问题

参考:https://www.cnblogs.com/wangyihong/p/7514304.html

tf1450332301的博客 2万+

安卓中关于软键盘的一些 研究和经验

最近做了一个项目 里面有几处对软键盘的 处理 ,自己从网上和其他地方查的资料和自己亲自研究认证,做了一点总结 希望对有些人有些作用 Android是一个针对触摸屏专门设计的操作系统,当点击编辑框,系统自动为用户弹出软键盘,以便用户进行输入。那么,弹出软键盘后必然会造成原有布局高度的减少,那么系统应该如何来处理布局的减少?我们能否在应用程序中进行自定义的控制?这些是本文要讨论的重点。

K17000105360的博客 455

关于 windowSoftInputMode 中 adjustResize 和 adjustPan 两个属性的理解 以及 输入法(软键盘)出现/收起的监听

记录最近项目中遇到的问题: 1、 页面布局:类似于登录注册,包含多个 EditText。为了适配屏幕小的手机,最外层套了一个 NestScrollView 用于滑动 问题描述:软键盘弹出时会将整个布局往上顶,并且距离输入法会有一大段的空白导致界面很难看 想要的效果:软键盘将界面顶起,但是最后一个输入项贴近输入法 解决思路:adjustPan 属性适用于底部有按钮,输入法将按钮顶起的情况。...

Jacinth40的博客 3610
上一篇: AndroidStudio相关1.01
下一篇: AndroidStudio相关1.02
androideveloper
博客等级 码龄12年 21粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值