Android(安卓)软键盘的监听(监听高度,是否显示)
16lz
2022-06-07
Android官方本身没有提供一共好的方法来对软键盘进行监听,但我们实际应用时,很多地方都需要针对软键盘来对UI进行一些优化。
以下是整理出来的一个不错的方法,大家可以使用。
public class SoftKeyboardUtil {public static void observeSoftKeyboard(Activity activity, final OnSoftKeyboardChangeListener listener) {final View decorView = activity.getWindow().getDecorView();decorView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { int previousKeyboardHeight = -1;@Overridepublic void onGlobalLayout() {Rect rect = new Rect();decorView.getWindowVisibleDisplayFrame(rect);int displayHeight = rect.bottom;int height = decorView.getHeight(); int keyboardHeight = height - displayHeight; if (previousKeyboardHeight != keyboardHeight) { boolean hide = (double) displayHeight / height > 0.8; listener.onSoftKeyBoardChange(keyboardHeight, !hide); } previousKeyboardHeight = height;}});}public interface OnSoftKeyboardChangeListener {void onSoftKeyBoardChange(int softKeybardHeight, boolean visible);}}
更多相关文章
- Android弹出软键盘布局是否上移问题
- Android(安卓)中使用Aspectj进行切面编程
- android 中edittext设置不弹出软键盘
- WebView 键盘遮挡输入框解决方案
- Android(安卓)软键盘盖住输入框的问题
- Android的TextView的双击事件监听
- Android-GridView的使用
- Android中使用WakeLock保证后台操作的顺利进行
- Android(安卓)App调用跳转百度地图、高德地图、腾讯地图进行目的