标签:boolean edit gets get android 而不是 ken oncreate state
1.activity的键盘问题
当布局中有EditText时,键盘有时会主动弹出影响界面效果,解决方式如下:
在清单文件-Manifest.xml中设定activity的属性
1.键盘的隐藏
android:windowSoftInputMode="stateHidden|stateUnchanged"
"stateUnspecified"是指软键盘的状态(是否它是隐藏或可见)没有被指定。
"stateHidden" 当用户选择该Activity时,软键盘被隐藏——也就是,当用户确定导航到该Activity时,而不是返回到它由于离开另一个Activity。
注:
在实际中中遇到一个问题:
在两个页面都有EditText作为搜索框时,进入第二个页面后,键盘始终无法弹出。
给EditText设置属性:
android:focusableInTouchMode="true"
另一种在activity设置:
调用隐藏系统默认的输入法
1.
((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(Activity.this.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
PS:(Activity是当前的Activity)
2.
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
2.键盘的弹出
根据项目需要若设置键盘弹出如下:
android:windowSoftInputMode="stateVisible|adjustResize"
"adjustResize" 该Activity主窗口总是被调整屏幕的大小以便留出软键盘的空间(简而言之就是启动该activity时键盘默认弹出)。
2.fragment的键盘问题
隐藏软键盘:
方法1:
getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
方法2:
View v = getActivity().getWindow().peekDecorView(); if (v != null){ InputMethodManager inputmanger = (InputMethodManager)getActivity()
.getSystemService(Context.INPUT_METHOD_SERVICE); inputmanger.hideSoftInputFromWindow(mv.getWindowToken(), 0); }
弹出软键盘:
editText.requestFocus(); InputMethodManager imm =(InputMethodManager)editText.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); imm.toggleSoftInput(0, InputMethodManager.SHOW_FORCED);
PS:editText.requestFocus()是把焦点放在editText这个控件上。
拓展:
点击其他部位隐藏软键盘
这个时候我们可以通过 onCreateView 返回的view设置它的setOnTouchListener方法具体代码如下:
view.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) {
View v = getActivity().getWindow().peekDecorView();
if (v != null){
InputMethodManager inputmanger = (InputMethodManager)getActivity()
.getSystemService(Context.INPUT_METHOD_SERVICE);
inputmanger.hideSoftInputFromWindow(mv.getWindowToken(), 0);
}
return false; }
});
标签:boolean edit gets get android 而不是 ken oncreate state
原文地址:http://www.cnblogs.com/widgetbox/p/7515585.html