键盘的弹出事件怎么监听呀

聊天窗口中的listview, 键盘弹出之后一部分被压住了,要是能监听键盘弹出事件就能解决。监听edittext获得的焦点,不管用因为代码弹出键盘前就运行了 求解决 感激不尽

1个回答

处理键盘弹出事件
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!



1、键盘显示则隐藏,没有显示则弹出

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);  
imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);

2、通过判断高度来判断键盘状态

detailMainRL = (RelativeLayout) findViewById(R.id.home_news_detail_main_rl);
    detailMainRL.getViewTreeObserver().addOnGlobalLayoutListener(
      new OnGlobalLayoutListener(){
        @Override
        public void onGlobalLayout()
        {

          int heightDiff = detailMainRL.getRootView().getHeight() - detailMainRL.getHeight();
          Log.v(TAG, "detailMainRL.getRootView().getHeight() = " + detailMainRL.getRootView().getHeight());
          Log.v(TAG, "detailMainRL.getHeight() = " + detailMainRL.getHeight());

          if (heightDiff > 100)
          { // 说明键盘是弹出状态
            Log.v(TAG, "键盘弹出状态");
            commentBoxRL.setVisibility(View.VISIBLE);
          } else{
            Log.v(TAG, "键盘收起状态");
            commentBoxRL.setVisibility(View.GONE);
          }
        }
      });


saqrag
草原码农 解决了 , 设置要listener以后一直运行弹起事件,后来加了remove方法解决了 多谢指导
接近 4 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Android键盘弹出监听
import android.app.Activity; import android.graphics.Rect; import android.view.View; import android.view.ViewTreeObserver; /** * 用于监听键盘是否弹出,并获取键盘高度 * * @author zhangxiaowei */ public class Keybo...
键盘弹出和键盘隐藏监听
KeyboardWatcher 项目地址:18511084155/KeyboardWatcher  简介:键盘弹出和键盘隐藏监听 更多:作者   提 Bug    标签:   最完善的键盘弹出和键盘隐藏监听处理。 Gradle 引用 compile 'com.woodys.tools.keyboard:KeyboardWatcher:1.0.1' 示例代码 priva...
弹出键盘,监听键盘高度
在我们开发中,经常用到评论等功能,在下方一个TextField,但是弹出键盘,评论框也要弹起,这时候要监听高度,本代码可完美实现此功能
对弹出键盘的监听
// 监听键盘的弹出     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardFrameChange:)                                                                                name:UIK
jquery 监听 键盘 事件
jquery 监听 键盘 事件
监听输入法键盘的事件
布局文件<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <!-
键盘弹出事件
将键盘弹出事件抽离,可以控制键盘弹起时视图的控制,主要用于控制view、tableView、scrollView - (instancetype)init {     if (self = [super init]) {         [self keyBoard];     }     return self; } + (in
监听android键盘弹出隐藏
方法: private void keyboardListener() { // final View myView = findViewById(R.id.nativt_activity_rv);sdf button_home.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobal
键盘弹出监听和点击键盘完键盘收起
android中并没有暴露给我们监听键盘弹出和收起的方法,为了监听键盘我们只能来监听界面的高度变化,这个大前提是不会变的,以前的方法是自定义最外层的Layout,并在onLayout方法中进行判断,但这样的判断有的时候是不准确的。为此我想到通过监听DecorView的Layoutchange方法中,比较DecorView和屏幕真正高度的来判断键盘的状态。为了能有这个变化我们用了SOFT_INPUT_
android键盘弹出/收起监听demo
android实现监听键盘弹出/收起事件,并且过滤掉splitted actin menubar的弹出
动态监听UITextField键盘的弹出与退出
UITextField中键盘的弹出与隐藏状态通过系统的通知名称UIKeyboardWillShowNotification、UIKeyboardWillHideNotification来获取。UITextField中键盘的退出方法常用的有两种:1.点击空白处回撤键盘,2.点击Return建回撤键盘。
android 监听判断键盘弹出和收回
在做公司项目时候发现要检查键盘弹出和收回来更新UI,那么本身android 键盘 api没有提供解决方案,那么只能够另辟蹊径。这里我使用的是检查view高度来实现键盘展开和收回监听,封装成一个类了: 代码: public class CXKeyHelper implements View.OnLayoutChangeListener { private Activity acti...
监听全局键盘的弹出与隐藏状态
android自带的监听方法不靠谱,可以通过根view的可见高度来判断键盘的显示与隐藏状态,但不适应于activity为全屏的状态。wholeLayout.getViewTreeObserver().addOnGlobalLayoutListener(globalLayoutListener); /** * 全局监听软键盘的显示状态 */ private ViewTreeObserver.OnG
Android 输入键盘弹出隐藏监听
父布局 注册监听 parent.getViewTreeObserver().addOnGlobalLayoutListener(this);//parent指父布局控件变量 重写监听方法 @Override public void onGlobalLayout() { //判断窗口可见区域大小 Rect r = new Rect(); getWindow().getDecorView().getW...
键盘怎么监听整个程序?
textField.addKeyListener(this) ,只能监听文本框,若鼠标点击到程序的其他地方,就不能在监听rn我监听JFrame没效果的JFrame.addKeyListener(this),请问怎么监听到整个程序?rnrn也就是只要程序在当前窗口,不管鼠标的光标在哪都能实现监听rnrn
键盘 监听
键盘 监听 - (void)addKeyBoardNoti {          [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(keyboardChange:) name:UIKeyboardWillShowNotification object:nil];          [[NS
vue监听手机键盘搜索事件
&lt;input @keypress="searchBtn" type="serch" placeholder="搜索"&gt; searchBtn(event) { if (event.keyCode == 13) { //如果按的是enter键 13是enter event.preventDefault(); //禁止默认事件(默认是换行) console.lo...
监听UITextField键盘删除按钮事件
// //  UITagTextField.h // //  Created by Peace on 6/10/15. // #import @protocol UITagTextFieldDelegate; @interface UITagTextField : UITextField UIKeyInput>
EditText键盘搜索事件设置和监听
首先要在EditText代码中设置imeOptions属性为actionSearch,这样输入法的确认按钮则会变为搜索按钮。 android:imeOptions=&quot;actionSearch&quot; 按键监听接下来需要给EditText设置搜索按键的监听,代码如下: input.setOnEditorActionListener(new OnEditorAction...
Android监听软键盘弹出和收起事件
监听Android软键盘弹出和收起事件(所有代码都是抽离自facebook/react-native源码中, 亲测有效, 放心食用)。回调事件方法参数包含<strong>键盘是否弹出</strong>(isShow)、<strong>键盘高度</strong>(keyboardHeight)、<strong>屏幕可用高度</strong>(screenHeight)、<strong>屏幕宽度</strong>(screenWidth)。
【Android常用】监听Android软键盘弹出与收回事件
KeyboardListener 关于作者 景三,程序员,主要从事Android平台基础架构方面的工作,欢迎交流技术方面的问题,可以去我的Github提issue或者发邮件至relish.wang@gmail.com与我交流。 文章目录KeyboardListener零、项目简介一、效果演示二、使用方法三、更新日志四、致谢 零、项目简介 KeyboardListener是从facebook/r...
使用SoftKeyBoardAdapter监听处理软键盘弹出事件
在使用EditText时,经常会碰到需要软键盘输入时,挡住了输入框或者是登陆按钮,这对于用户的体验是非常不好的。 一般的做法是通过OnGlobalLayoutListener来监听界面变化来调整,但是往往调整效果不是很佳,没有QQ和微信那样的效果。 Github的一个开源工具SoftKeyBoardAdapter,提供了一个比较精确的界面调整工具。依据上面的Demo,效果还是不错的
input弹出的手机键盘搜索事件
一、input的搜索框   在input标签里面把type设置为search就可以了。弹出的手机键盘回车键也会变成搜索或者是搜索的图标。<input id="search" type="search" ></input>设置type为search的搜索框,当输入内容的时候,后面会多出一个x,点击x可以清空输入的内容。 二、获取键盘搜索事件   输入内容之后直接点击手机键盘的搜索按钮就可以进行搜索了
怎么监听flash加载事件
一个iframe里内嵌了一个flash,我要在flash加载完毕之后执行js,怎么监听flash加载完毕,谢谢各位
怎么监听浏览器关闭事件?
或者浏览器标签的关闭rnrn 谢谢rnrn 我的尝试如下rn[code=JScript] [/code]rnrn后面的alert是不会执行的
mapView怎么监听放大缩小事件
如题,在我使用MapView的时候,它自带放大缩小按钮,请问高手,我如何才能监听到放大缩小按钮的单击事件?rn另外,如果可以的话,mapView有拖动事件可以监听吗?rn我想实现在放大或者缩小地图,或者拖动达到一定距离后刷新地图上数据..
怎么监听程序关闭事件?
我有个主函数为Winmain的无窗口程序 这个程序一直在后台运行直到运行结束rn我必须在程序结束前做一个操作abc(); 除了在正常代码里正常结束前加上abc()外rn如果运行中途我打开了任务管理器强制结束进程 怎么让那操作也执行 rn网上有看到说重写OnDestroy();不知道这样适不适用任务管理器强制结束。如果重写是对的,请问要怎么重写?rn顺便问下Winmain为主函数的程序就干吗了?
弹出键盘
动画的执行节奏     UIKeyboardAnimationCurveUserInfoKey = 7; 键盘弹出/隐藏动画所需要的时间     UIKeyboardAnimationDurationUserInfoKey = "0.25";     UIKeyboardBoundsUserInfoKey = "NSRect: {{0, 0}, {320, 253}}";     UIK
键盘弹出
//UIKeyboardDidShowNotification:键盘已经显示时发的通知     //UIKeyboardWillHideNotification:键盘将要消失     //UIKeyboardDidHideNotification:键盘已经消失          //UIKeyboardWillShowNotification:键盘将要显示时发的通知,(系统
帮忙呀?获取键盘按下的事件!!
我想在任何的时候取得键盘按下的事件!(有可能此时的焦点不在这个应用程序上)rnrn如何能够取得呀?各位高人帮忙呀!rnrn谢谢!!!
怎么在服务器端弹出提示呀
急呀
写个俄罗斯方块,怎么监听不了键盘
[code=Java]rnimport java.awt.*;rnimport java.awt.event.*;rnimport java.util.*;rnrnpublic class TestGame extends Frame rn int temporaryType, temporaryChape;rn int mark;rn Panel PUP = new Panel() rn public void paint(Graphics g) rn g.setColor(Color.blue);rn for (int i = 0; i < 4; i++) rn for (int j = 0; j < 4; j++) rn if (map[temporaryType][temporaryChape][i][j] != 0)rn g.fillRect(45 + j * 10, 15 + i * 10, 10, 10);rn rn rn rn ;rn final int[][][][] map = new int[][][][] rn // irn 0, 0, 0, 0 , 1, 1, 1, 1 , 0, 0, 0, 0 , 0, 0, 0, 0 rnrn , 0, 1, 0, 0 , 0, 1, 0, 0 , 0, 1, 0, 0 , 0, 1, 0, 0 rnrn , 0, 0, 0, 0 , 1, 1, 1, 1 , 0, 0, 0, 0 , 0, 0, 0, 0 rnrn , 0, 1, 0, 0 , 0, 1, 0, 0 , 0, 1, 0, 0 , 0, 1, 0, 0 rnrn ,rn // srn rn 0, 1, 1, 0 , 1, 1, 0, 0 , 0, 0, 0, 0 ,rn 0, 0, 0, 0 ,rn 1, 0, 0, 0, , 1, 1, 0, 0, , 0, 1, 0, 0 ,rn 0, 0, 0, 0 ,rn 0, 1, 1, 0, , 1, 1, 0, 0 , 0, 0, 0, 0 ,rn 0, 0, 0, 0 ,rn 1, 0, 0, 0, , 1, 1, 0, 0, , 0, 1, 0, 0 ,rn 0, 0, 0, 0 ,rn // zrn rn 1, 1, 0, 0 , 0, 1, 1, 0, , 0, 0, 0, 0 ,rn 0, 0, 0, 0 ,rn 0, 1, 0, 0 , 1, 1, 0, 0 , 1, 0, 0, 0 ,rn 0, 0, 0, 0 ,rn 1, 1, 0, 0 , 0, 1, 1, 0, , 0, 0, 0, 0 ,rn 0, 0, 0, 0 ,rn 0, 1, 0, 0 , 1, 1, 0, 0 , 1, 0, 0, 0 ,rn 0, 0, 0, 0 ,rn // jrn rn 0, 1, 0, 0 , 0, 1, 0, 0 , 1, 1, 0, 0 ,rn 0, 0, 0, 0 ,rn 1, 0, 0, 0 , 1, 1, 1, 0 , 0, 0, 0, 0 ,rn 0, 0, 0, 0 ,rn 1, 1, 0, 0 , 1, 0, 0, 0 , 1, 0, 0, 0 ,rn 0, 0, 0, 0 , ,rn 1, 1, 1, 0 , 0, 0, 1, 0 , 0, 0, 0, 0 ,rn 0, 0, 0, 0 ,rn // orn rn 1, 1, 0, 0 , 1, 1, 0, 0 , 0, 0, 0, 0 ,rn 0, 0, 0, 0 ,rn 1, 1, 0, 0 , 1, 1, 0, 0 , 0, 0, 0, 0 ,rn 0, 0, 0, 0 ,rn 1, 1, 0, 0 , 1, 1, 0, 0 , 0, 0, 0, 0 ,rn 0, 0, 0, 0 ,rn 1, 1, 0, 0 , 1, 1, 0, 0 , 0, 0, 0, 0 ,rn 0, 0, 0, 0 ,rn // Lrn rn 1, 0, 0, 0 , 1, 0, 0, 0 , 1, 1, 0, 0 ,rn 0, 0, 0, 0 ,rn 1, 1, 1, 0 , 1, 0, 0, 0 , 0, 0, 0, 0 ,rn 0, 0, 0, 0 ,rn 1, 1, 0, 0 , 0, 1, 0, 0 , 0, 1, 0, 0 ,rn 0, 0, 0, 0 ,rn 0, 0, 1, 0 , 1, 1, 1, 0 , 0, 0, 0, 0 ,rn 0, 0, 0, 0 ,rn // trn rn 0, 1, 0, 0 , 1, 1, 1, 0 , 0, 0, 0, 0 ,rn 0, 0, 0, 0 ,rn 0, 1, 0, 0 , 1, 1, 0, 0 , 0, 1, 0, 0 ,rn 0, 0, 0, 0 ,rn 1, 1, 1, 0 , 0, 1, 0, 0 , 0, 0, 0, 0 ,rn 0, 0, 0, 0 ,rn 0, 1, 0, 0 , 0, 1, 1, 0 , 0, 1, 0, 0 ,rn 0, 0, 0, 0 ;rnrn public static void main(String[] args) rn TestGame tg = new TestGame();rn Game gui = tg.new Game();rn tg.UI(gui);rn gui.automatic();rn rn // 画外框rn void UI(Game gui) rn this.setBounds(400, 400, 260, 260);rn this.addKeyListener(new MyKeyMonitor());rn this.setLayout(new GridLayout(1, 2));rn Panel p = new Panel();rn p.setLayout(new GridLayout(1, 2));rn p.add(gui);rn Panel p3 = new Panel();rn p3.setLayout(new GridLayout(3, 1));rn p.add(p3);rn PUP.setBackground(Color.cyan);rn p3.add(PUP);rn Panel pCentre = new Panel();rn pCentre.setBackground(Color.green);rn p3.add(pCentre);rn Panel pDown = new Panel();rn pDown.setLayout(new GridLayout(4, 1));rn AllListener al = new AllListener();rn Button b1 = new Button("重新开始");rn b1.addActionListener(al);rn pDown.add(b1);rn Button b3 = new Button("开始");rn b3.addActionListener(al);rn pDown.add(b3);rn Button b2 = new Button("暂停");rn b2.addActionListener(al);rn pDown.add(b2);rn Button b = new Button("退出");rn b.addActionListener(al);rn pDown.add(b);rn p3.add(pDown);rn this.add(p);rn this.setVisible(true);rn rn rn class Game extends Panel rn private boolean over = false;rn private int mapX = 4;rn private int mapY;rn private int[][] container;rn private int typeMap;rn private int chapeMap;rnrn public Game() rn containerMap();rn newMap();rn newMap();rn rnrn // 绘制rn public void paint(Graphics g) rn g.setColor(Color.blue);rn // g.fillRect(10, 10, 50,50);rn for (int i = 0; i < 22; i++) rn for (int j = 0; j < 12; j++) rn if (container[i][j] != 0)rn g.fillRect(j * 10, i * 10, 10, 10);rn rn rn g.setColor(Color.black);rn for (int i = 0; i < 4; i++) rn for (int j = 0; j < 4; j++) rn if (map[typeMap][chapeMap][i][j] != 0)rn g.fillRect(mapX * 10 + j * 10, mapY * 10 + i * 10, 10,rn 10);rn rn rn rnrn // 画墙rn void containerMap() rn container = new int[22][12];rn for (int y = 0; y < 22; y++) rn if (y == 21) rn for (int x = 0; x < 12; x++) rn container[y][x] = 2;rn rn rn container[y][0] = 2;rn container[y][11] = 2;rn rn rnrn // 算出新方块rn void newMap() rn typeMap = temporaryType;rn chapeMap = temporaryChape;rn int i = new Random().nextInt(28);rn temporaryType = i % 7;rn temporaryChape = i % 4;rn TestGame.this.PUP.repaint();rn rnrn // 判断是否合法rn boolean ifMap(int x, int y) rn for (int i = 0; i < 4; i++) rn for (int j = 0; j < 4; j++) rn if (map[typeMap][chapeMap][i][j] == 1) rn if (container[y + i][x + j] != 0)rn return false;rn rn rn rn return true;rn rnrn // 判断是否overrn boolean ifOver() rn int x = 0;rnrn for (int i = 0; i < 21; i++) rn for (int j = 1; j < 11; j++) rn if (container[i][j] != 0) rn x++;rn break;rn rn rn if (x >= 20)rn return true;rn rn return false;rn rnrn // 判断消除rn void ifScores() rn int ifscores = 0;rn for (int i = 0; i < 21; i++) rn for (int j = 1; j < 11; j++) rn if (container[i][j] == 1)rn ifscores++;rn rn if (ifscores == 10) rn mark++;rn this.soures(i);rn rn ifscores = 0;rn rn rnrn // 消除后整合rn void soures(int y) rn for (int i = (y - 1); i >= 0; i--) rn for (int j = 1; j < 11; j++) rn container[i + 1][j] = container[i][j];rn rn rn rnrn // 右移动rn void right() rn if (this.ifMap(mapX - 1, mapY))rn mapX--;rn rnrn // 左移动rn void left() rn if (this.ifMap(mapX + 1, mapY))rn mapX++;rn rnrn // 下移动rn void down() rn if (this.ifMap(mapX, mapY + 1)) rn this.mapY++;rn else rn for (int i = 0; i < 4; i++) rn for (int j = 0; j < 4; j++) rn if (map[typeMap][chapeMap][i][j] == 1) rn container[mapY + i][mapX + j] = map[typeMap][chapeMap][i][j];rn rn rn rn this.ifScores();rn over = this.ifOver();rn mapX = 4;rn mapY = 0;rn this.newMap();rn rn rnrn // 旋转rn void spin() rn chapeMap = (chapeMap + 1) % 4;rn if (!ifMap(mapX, mapY))rn chapeMap = (chapeMap + 3) % 4;rn rnrn // 自动下落rn void automatic() rn while (!over) rn try rn Thread.sleep(1000);rn catch (InterruptedException e) rn e.printStackTrace();rn System.exit(0);rn rn down();rn repaint();rn rn System.out.println("game over");rn rn rnrn class AllListener implements ActionListener rn public void actionPerformed(ActionEvent ae) rn String s = ae.getActionCommand();rn if (s.equals("重新开始"))rn System.out.println("000");rn if (s.equals("开始"))rn System.out.println("001");rn if (s.equals("暂停"))rn System.out.println("002");rn if (s.equals("退出"))rn System.exit(0);rn rn rn class MyKeyMonitor extends KeyAdapter rn public void keyPressed(KeyEvent e) rn int keyCode = e.getKeyCode();rn if (keyCode == KeyEvent.VK_UP) rn System.out.println("UP");rn rn rn rnrn[/code]
事件_键盘类事件
本课程是JavaScript同初级到框架封装的完整课程,课程健全,从JavaScript入门到高级进阶,内容涵盖了JavaScript数据类型、运算符、流程控制、循环语句、函数、JavaScript BOM、数组、字符串、数学对象、日期对象、JavaScriptDOM、事件、JavaScript购物车案例、正则表达式、变量、作用域、内存、函数表达式、this、瀑布流、函数式编程、错误调试与处理、运动框架、面向对象封装案例、JavaScript_Ajax、设计模式、简单框架封装、jquery等。
怎么锁鼠标,键盘,怎么解锁呀
如上
android 键盘按键监听
onKeyDown方法:该方法是接口KeyEvent.Callback中的抽象方法,所有的View全部实现了该接口并重写了该方法,该方法用来捕捉手机键盘被按下的事件。 public boolean onKeyDown (int keyCode, KeyEvent event) 参数keyCode,该参数为被按下的键值即键盘码,手机键盘中每个按钮都会有其单独的键盘码,在应用程序都是通过键
监听第三方键盘
监听第三方键盘
android开发键盘状态监听
1.背景相信大家在自己的项目中都会遇到EditText输入的问题,自然而然随之产生的就是让人头痛的键盘问题了,之所以说让人头疼是因为需求不同,设计不同,我们所要做的处理也不同,加上Google爸爸并没有针对键盘状态的API,所以只能靠我们自己处理。小白最近遇到的问题是:当键盘弹出的的时候,将输入框移到距离屏幕最上方20像素的地方,键盘收起时复位,所以有两个问题:1.键盘弹出收起状态监听 2.将指定
Python 键盘鼠标监听
异想天开的想记录一下自己每天的键盘键位走向,于是就在网上搜索了一下相关的实现,然后就发现了一个第三方的库pyHook.封装的很好,我们只需要傻瓜式的调用里面的API就可以了。 下面是我在使用pyHook 的过程中遇到的问题和经验总结。 准备工作 操作系统: windows7 64位旗舰版 Python版本: 2.7.11 第三...
Swift 键盘动作监听
一、创建UIViewController的BaseViewContrller:mport UIKit/** * 监听输入框键盘的基本控制器 */class ZJContainFieldBaseVC: UIViewController{    //private var totalYOffset:CGFloat = 0.00    override func viewDidLoad() {     ...
键盘收起展开监听
KeyboardUtils KeyBoardShowListener   重点是 KeyBoardShowListener     拿来主义者而已,分享一下,同时也怕自己忘记走弯路. public class KeyBoardShowListener { private Context ctx; public KeyBoardShowListener(Context
相关热词 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法