Android监听输入法的状态:弹起,关闭
-
在根视图添加一个id,
@+id=root_view,如

-
监听布局的状态
@BindView(R.id.rl_rootview) FrameLayout frameLayout; frameLayout.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { if (isShowBoard) { int heightDiff = frameLayout.getRootView().getHeight() - frameLayout.getHeight(); if (heightDiff > dpToPx(getActivity(), 200)) { // if more than 200 dp, it's probably a keyboard... // ... do something here Log.d("----------", "打开"); } else { Log.d("----------", "关闭"); } } } }); //dp转px public float dpToPx(Context context, float valueInDp) { DisplayMetrics metrics = context.getResources().getDisplayMetrics(); return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, valueInDp, metrics); } -
在
manifest.xml中给activity设置windowSoftInputMode="adjustResize"<activity android:name=".activity.AddActivity" android:windowSoftInputMode="adjustResize" android:theme="@style/AppTheme.NoActionBar" />
本文介绍了一种在Android应用中监听输入法状态的方法,通过在根视图添加监听器,可以检测到输入法的弹起和关闭状态。利用布局高度变化判断输入法是否显示,并给出了具体的实现代码和在manifest文件中的配置。

622

被折叠的 条评论
为什么被折叠?



