Android 监听键盘弹出和收起.

摘要:
约定事项:http://stackoverflow.com/questions/36837066/how-to-validate-virtual-keyboard-visibility监视器键盘弹出并折叠。/*代码中的其他位置*/RelativeLayoutmainLayout=findViewById(R.layout.main_layout)//Youmus

entends:http://stackoverflow.com/questions/36837066/how-to-validate-virtual-keyboard-visibility

监听键盘弹出和收起.

/*
Somewhere else in your code
*/

RelativeLayout mainLayout = findViewById(R.layout.main_layout); // You must use your root layout
InputMethodManager im = (InputMethodManager) getSystemService(Service.INPUT_METHOD_SERVICE);     

/*
Instantiate and pass a callback
*/

SoftKeyboard softKeyboard;
softKeyboard = new SoftKeyboard(mainLayout, im);
softKeyboard.setSoftKeyboardCallback(new SoftKeyboard.SoftKeyboardChanged()
{
 @Override  
  public void onSoftKeyboardHide()   
  {
        // Code here  
  }  

  @Override 
   public void onSoftKeyboardShow()  
   { 
       // Code here 
   }   
});     

/*
Open or close the soft keyboard programatically
*/

softKeyboard.openSoftKeyboard();
softKeyboard.closeSoftKeyboard();


/*
SoftKeyboard can catch keyboard events when an EditText gains focus and keyboard appears
*/


/* Prevent memory leaks:
*/

@Override
public void onDestroy()
{  
  super.onDestroy(); 
   softKeyboard.unRegisterSoftKeyboardCallback();
}
final View parentView= findViewById(R.id.myrootview);  
       parentView.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
        @Override
        public void onGlobalLayout() {
            int heightDiff = root.getRootView().getHeight() - root.getHeight();

            Rect rectgle= new Rect();
            Window window= getWindow();
            window.getDecorView().getWindowVisibleDisplayFrame(rectgle);
            int contentViewTop= 
                window.findViewById(Window.ID_ANDROID_CONTENT).getTop();

            if(heightDiff <= contentViewTop){
                //Soft KeyBoard Hidden---button visible

            }else{
                //Soft KeyBoard Shown---button hide
            }


         }
    });

免责声明:文章转载自《Android 监听键盘弹出和收起.》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇sqlmap的安装微信小程序页面返回下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

如何使用 window.open() 下载文件: 在本页面打开并防止浏览器拦截

从接口请求返回的内容有两种类型:直接返回文件内容、返回url和使用窗口。open()直接打开请求地址或返回的url,然后将请求地址或所返回的url直接分配给窗口的href1。直接返回文件内容:打开请求api地址downPkg(){letmywin=window.open('',mywin.location.href=apiPath;}2。返回url时:...

未知账户(S1521)无法删除的问题

只有在“安全”中将所有者设置为当前管理用户后,才能删除此项。单击安全,单击高级,然后单击安全中的所有者以更改为系统的当前用户。...

CAS单点登录------未认证授权服务

问题背景:之前我使用的127.0.0.1进行CAS直接url进行过滤!后来我用nginx进行反向代理出现问题:如下图第一眼,就在内心想,草这什么鬼!调试了五分钟发现还是不行!  网上各种教程!  半小时过去了!我吧配置文件自己看看!    出现这样问题:原因是CAS 的服务认真之前先有个REgx的正则判断,目录如上看这个正则时候,我瞬间明白了,我下面这个问题...

kafka命令

启动kafka:./kafka-server-start.sh../config/server.properties&查看topic./kafka-topics.sh--zookeeper192.168.8.56:2181,192.168.8.70:2181,192.168.8.147:2181--describe--topicliuhangjun....

HTML中canvas的大小调整

今天用到canvas元素,发现它的大小不是像普通dom元素一样,直接设置css样式可以改变的,它会由自己原本的大小伸缩。例如,1.如果直接在canvas元素中添加style='300px;height:300px',这会导致伸缩,如图2.换种方式在css样式表中加入样式设置宽高产生的效果也是一样的。...

如何在Android模拟器上安装apk文件

如本实例的“mishop_2.0.20130911_1.1.1.apk”3.执行控制台命令,进行安装。切换到D盘,输入D:,然后点击Enter,即切换到D盘,输入cd,找到platform-tools的文件地址,即adb.exe的文件路径。,粘贴在控制台中。...