我正面临着我的一个复杂片段布局xml的情况,
所以层次结构如下:
RelativeLayout(无背景)
--ScrollView(fillViewPort = true,scrollbars = none)
---- FrameLayout(无背景)
------ LinearLayout(无背景)
-------- RelativeLayout(背景颜色为灰色)
----------的EditText
...
因此,当单击edittext时,它会打开软键盘(如预期的那样),当按下或按下以下方法隐藏键盘的一些点击块时:
try {
InputMethodManager inputMethodManager = (InputMethodManager) GlobalApplication.getInstance().getCurrentActivity().getSystemService(Activity.INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(GlobalApplication.getInstance().getCurrentActivity().getCurrentFocus().getWindowToken(), 0);
} catch (Exception e) {
if (e.getMessage() != null)
Log.d("KeyboardError", e.getMessage());
}
问题是我有活动的红色背景,当隐藏键盘动作发生时,我看到活动的背景而不是RelativeLayout的灰色背景,而且&#&# 39; s发生像小故障或卡住。一段时间后,它恢复正常并显示正确的背景。
感谢您的帮助,欢呼。
答案 0 :(得分:1)
在super.onCreate(savedInstanceState)之后的基础活动onCreate()中使用它;
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
或
在您的活动标记
下的清单中添加这些行android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
android:windowSoftInputMode="stateHidden|adjustPan"