按键值-安卓软键盘的右上角的那个收起键按钮是那个值呢?

问题描述

安卓软键盘的右上角的那个收起键按钮是那个值呢?
安卓的键盘右上角的那个向下的箭头,点击了以后键盘关闭,点击那个按钮的值是那个呢?

解决方案

4.点击软键盘自带的收起按钮(软键盘收起)

问题卡在此处,经过资料的搜查,还是么能找到软键盘收起按钮事件监听的办法,最后在stackoverflow网站找到了从布局高度的变化来判断软键盘的打开和收起事件。

import android.graphics.Rect;
import android.view.View;
import android.view.ViewTreeObserver;

import java.util.LinkedList;
import java.util.List;

public class SoftKeyboardStateHelper implements ViewTreeObserver.OnGlobalLayoutListener {

public interface SoftKeyboardStateListener {    void onSoftKeyboardOpened(int keyboardHeightInPx);    void onSoftKeyboardClosed();}private final List<SoftKeyboardStateListener> listeners = new LinkedList<SoftKeyboardStateListener>();private final View activityRootView;private int        lastSoftKeyboardHeightInPx;private boolean    isSoftKeyboardOpened;public SoftKeyboardStateHelper(View activityRootView) {    this(activityRootView false);}public SoftKeyboardStateHelper(View activityRootView boolean isSoftKeyboardOpened) {    this.activityRootView     = activityRootView;    this.isSoftKeyboardOpened = isSoftKeyboardOpened;    activityRootView.getViewTreeObserver().addOnGlobalLayoutListener(this);}@Overridepublic void onGlobalLayout() {    final Rect r = new Rect();    //r will be populated with the coordinates of your view that area still visible.    activityRootView.getWindowVisibleDisplayFrame(r);    final int heightDiff = activityRootView.getRootView().getHeight() - (r.bottom - r.top);    if (!isSoftKeyboardOpened && heightDiff > 100) { // if more than 100 pixels its probably a keyboard...        isSoftKeyboardOpened = true;        notifyOnSoftKeyboardOpened(heightDiff);    } else if (isSoftKeyboardOpened && heightDiff < 100) {        isSoftKeyboardOpened = false;        notifyOnSoftKeyboardClosed();    }}public void setIsSoftKeyboardOpened(boolean isSoftKeyboardOpened) {    this.isSoftKeyboardOpened = isSoftKeyboardOpened;}public boolean isSoftKeyboardOpened() {    return isSoftKeyboardOpened;}/** * Default value is zero (0) * @return last saved keyboard height in px */public int getLastSoftKeyboardHeightInPx() {    return lastSoftKeyboardHeightInPx;}public void addSoftKeyboardStateListener(SoftKeyboardStateListener listener) {    listeners.add(listener);}public void removeSoftKeyboardStateListener(SoftKeyboardStateListener listener) {    listeners.remove(listener);}private void notifyOnSoftKeyboardOpened(int keyboardHeightInPx) {    this.lastSoftKeyboardHeightInPx = keyboardHeightInPx;    for (SoftKeyboardStateListener listener : listeners) {        if (listener != null) {            listener.onSoftKeyboardOpened(keyboardHeightInPx);        }    }}private void notifyOnSoftKeyboardClosed() {    for (SoftKeyboardStateListener listener : listeners) {        if (listener != null) {            listener.onSoftKeyboardClosed();        }    }}

}

代码的使用:

final SoftKeyboardStateHelper softKeyboardStateHelper = new SoftKeyboardStateHelper(findViewById(R.id.activity_main_layout);
softKeyboardStateHelper.addSoftKeyboardStateListener(...);
// then just handle callbacks

时间: 2024-09-17 03:51:05

按键值-安卓软键盘的右上角的那个收起键按钮是那个值呢?的相关文章

Android软键盘遮挡的四种完美解决方案_Android

一.问题概述 在编辑框输入内容时会弹出软键盘,而手机屏幕区域有限往往会遮住输入界面,我们先看一下问题效果图: 输入用户名和密码时,系统会弹出键盘,造成系统键盘会挡住文本框的问题,如图所示: 输入密码时输入框被系统键盘遮挡了,大大降低了用户操作体验,这就是开发中非常常见的软键盘遮挡的问题,该如何解决? 二.简单解决方案 方法一 在你的activity中的oncreate中setContentView之前写上这个代码 getWindow().setSoftInputMode(WindowManage

Android软键盘挡住输入框的终极解决方案_Android

前言 开发做得久了,总免不了会遇到各种坑. 而在Android开发的路上,『软键盘挡住了输入框』这个坑,可谓是一个旷日持久的巨坑--来来来,我们慢慢看. 入门篇 最基本的情况,如图所示:在页面底部有一个EditText,如果不做任何处理,那么在软键盘弹出的时候,就有可能会挡住EditText. 对于这种情况的处理其实很简单,只需要在AndroidManifest文件中对activity设置:android:windowSoftInputMode的值adjustPan或者adjustResize即

虚拟键盘-JavaScript怎样实现咋键盘上按下不同的键,页面上不同的div调用同一个css样式

问题描述 JavaScript怎样实现咋键盘上按下不同的键,页面上不同的div调用同一个css样式 这是页面上的一个虚拟键盘,我想实现的是当我在电脑的键盘上按键后,虚拟键盘上的相对应的键会有不同的显示效果(调用一个css)(虚拟键盘上的每一个小键都是一个图片),就是当我按下不同的按键,页面上相对的键所在的div就会调用同一个css 解决方案 虚拟键盘上的每个控件都增加keycode属性,然后document.onkeydown获取时间的keycode属性后获取控件添加个样式,过100ms再移除什

Android App监听软键盘按键的三种方式

前言: 我们在android手机上面有时候会遇到监听手机软键盘按键的时候,例如:我们在浏览器输入url完毕后可以点击软键盘右下角的"GO"按键加载url页面:在点击搜索框的时候,点击右下角的search符号键可以进行搜索:或者在全部数据输入完毕后,点击右下角的"done"就马上进行下一步操作. 效果图: function 1: 重写Activity的dispatchKeyEvent(KeyEvent event)方法,在其中监听KeyEventKey.KEYCODE

安卓手机软键盘-HTML5 手机页面 输入表单被键盘遮挡住了

问题描述 HTML5 手机页面 输入表单被键盘遮挡住了 HTML5 手机页面 输入表单被键盘遮挡住了 请问 大神 怎么 js 或者 JQ 判断安卓手机软键盘的键盘隐藏键按下去了? 有使用 uexWindow 方法 能判断到确定键 是 13 但是不知道这个键的键值 是什么? 或者有什么其他方法? 判断窗口尺寸改变的 size 方法无效 解决方案 没有相关的事件来获取隐藏按钮点击,keydown/keyup事件中获取到的keyCode都是0,楚了你说的前往keyCode 13. 可以用计时器监视wi

Android App实现监听软键盘按键的三种方式

前言: 我们在Android手机上面有时候会遇到监听手机软键盘按键的时候,例如:我们在浏览器输入url完毕后可以点击软键盘右下角的"Go"按键加载url页面:在点击搜索框的时候,点击右下角的search符号键可以进行搜索:或者在全部数据输入完毕后,点击右下角的"done"就马上进行下一步操作. 效果图: function 1: 重写Activity的dispatchKeyEvent(KeyEvent event)方法,在其中监听KeyEventKey.KEYCODE

前端常见兼容问题系列8: 安卓机器中通过JS设置焦点无法拉起软键盘

有时候,为了优化用户体验,做交互设计的同学可能会希望让输入框自动获得焦点并弹出软键盘,这样用户不用点击输入框就可以直接输入.的确,这对用户来说很方便.但真正用HTML5页面去实现的时候,却遇到了问题. 首先我做了这样一个demo. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="apple-mobile

安卓-webview里面的input有时会出现焦点聚焦不了,导致软键盘弹不出来!

问题描述 webview里面的input有时会出现焦点聚焦不了,导致软键盘弹不出来! 求解:webview里面的input有时会出现焦点聚焦不了,导致软键盘弹不出来!求大神帮帮忙,安卓也已经写过requestFocus这个方法了,还是没用. 解决方案 问题解决 了吗,楼主 解决方案二: 楼主解决问题了吗,希望能分享一下.我也遇到同样的问题了,只要webview 所在页面转到后台,在返回前台.软键盘就弹不出来了

软键盘-怎么获取FullScreenKeyboard的值到自己的控件中显示出来

问题描述 怎么获取FullScreenKeyboard的值到自己的控件中显示出来 我在网上下载了一个FullScreenKeyboard 软键盘 可以用,但是我得不到软键盘输入的值 请问怎样获取软键盘里面的值呢?