安卓监听键盘显示和隐藏

问题概况:横板cocos2dx游戏,点击输入框弹出键盘时,界面要求跟随网上平易,不能挡住输入框。这种问题只出现在非全屏键盘到情况下。

方案1:mainActivity重写onconfigurationChanged,监听屏幕方向旋转,添加Android:configChanges="orientation|keyboard"。

缺点全屏下无效,如果设置为非全屏,<activity android:theme="@android:style/Theme.NoTitleBar.Fullscreen" />,去掉Fullscreen

这样会显示系统状态栏。否掉!

方案2:弹出键盘时势必引起layout布局的变化,监听布局的变化然后计算偏移,即可算出是否时显示或隐藏键盘。

//获取rootview
mRoot = this.getWindow().getDecorView();

全局键盘显示和隐藏不会触发

//添加布局变化监听
root.getViewTreeObserver().addOnGlobalLayoutListener( new OnGlobalLayoutListener() {
	            @Override
	            public void onGlobalLayout() {
	                Rect rect = new Rect();
	                root.getWindowVisibleDisplayFrame(rect);
	                int rootInvisibleHeight = root.getRootView().getHeight() - rect.bottom;
	                if (rootInvisibleHeight <= 100) {
	                    //通知c++做想做的事
	                	hideKeyBoardHandler();
	                } else {
	                	showKeyBoardHandler();
	                }
	            }
	        });
时间: 2024-12-28 08:54:47

安卓监听键盘显示和隐藏的相关文章

2016-02-22 监听键盘 隐藏bar

- (BOOL)prefersStatusBarHidden{ return YES; }   //隐藏bar 2:让键盘消失 ////    [_lastField resignFirstResponder]; //    [self.view endEditing:YES];//gzz0223 // //    //gzz0223 键盘消失 //    NSArray *subviews = [self.view subviews]; //    for (id objInput in su

IOS 监听键盘的通知

通知方法: /** * 当键盘改变了frame(位置和尺寸)的时候调用 */ - (void)keyboardWillChangeFrame:(NSNotification *)note { // 设置窗口的颜色 self.view.window.backgroundColor = self.tableView.backgroundColor; // 0.取出键盘动画的时间 CGFloat duration = [note.userInfo[UIKeyboardAnimationDuration

通过KVO来监听键盘弹出和弹回

在通知中心建立一个广播来监听键盘的弹出和弹回,在监听事件中加入触发事件的一些操作. [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(keyboardWillChange:) name:UIKeyboardWillChangeFrameNotification object:nil]; [[NSNotificationCenter defaultCenter]addObserver:self sele

iOS 监听键盘高度,输入框上升

1 //设置输入框 ---<因为输入框用了get方法,所以第一次调用输入框要用self 调用>: 2 self.textlab.frame=CGRectMake(20, 420, 250, 30); 3 _textlab.layer.borderColor=[UIColor blueColor].CGColor; 4 _textlab.layer.borderWidth= 0.5f; 5 _textlab.backgroundColor=[UIColor colorWithRed:0.830

监听键盘事件

注册监听键盘事件: 1 // 键盘即将隐藏 2 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil]; 3 4 // 键盘已经隐藏 5 [[NSNotificationCenter defaultCenter] addObserver:self selector:@sel

android 软键盘的显示与隐藏问题的研究

在android中,常常会和输入法的软件键盘交互.在Manifest文件中,系统给activity的一个属性-windowSoftInputMode来控制输入法的显示方式. 该属性提供了Activity的window与软键盘的window交互的方式.这里的属性设置有双方面的影响: 1.软键盘的显示与隐藏.-当Activity界面成为用户的焦点时,或隐藏或显示. 2. 对Activty的主window窗体进行调整.或者将Activity的window窗体调小以便为软键盘腾出空间,或者当Activi

Atitit。监听键盘上下左右方向键事件java js jquery c#.net

Atitit.监听键盘上下左右方向键事件java js jquery   c#.net 1. Keyword1 2. 通用的实现流程1 3. Js的实现1 3.1. Bind control ,event handeler1 3.2. key_press_hadler4up2 4. Java的实现3 5. C# .net winformn4 6. 参考4 1. Keyword 键盘事件  方向键   上下左右  按键监听 2. 通用的实现流程 Bind (control,key_eventHan

21-30(NSTimer定时器 Cell的重用原理 代理的使用场合 UITableViewCell结构 监听键盘的通知)

21.NSTimer定时器 22.tableView的基本用法 23.tableView的常用属性 24.Cell的重用原理: 25.UITableViewCell结构 26.使用xib封装一个view的步骤 27.代理的使用场合 28.使用delegate的步骤 29.通过代码自定义cell步骤 30.监听键盘的通知 { 细节决定成败, 这句话讲的太对了, 所以我们要注意每一个细节!今天还好注意了, 没犯错!嘿嘿! 今天心情特别好, 心情好! 啥都好! 给大家来个笑, 工作的同时,不要忘记笑容

EditText获取和失去焦点,软键盘的关闭,和软键盘的显示和隐藏的监听

软键盘显示和隐藏的监听: 注: mReplayRelativeLayout是EditText的父布局 //监听软键盘是否显示或隐藏 mReplayRelativeLayout.getViewTreeObserver().addOnGlobalLayoutListener( new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { Rect r = new Rect(); mRe