码迷,mamicode.com
首页 > 移动开发 > 详细

Android键盘使用问题汇总

时间:2015-02-11 16:33:21      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:

1、android:windowSoftInputMode

1、当有焦点产生时,软键盘是隐藏还是显示
2、是否减少活动主窗口大小以便腾出空间放软键盘

2、android:imeOptions="actionSearch|flagNoFullscreen"的用法

在做一个把EditText放到到ActionBar中作为搜索框的功能时,设置EditText的属性为android:imeOptions="actionSearch",会遇到一个问题,当在横屏时,EditText的宽度会填充掉屏幕上除了软键盘之外的地方,与需求不符,改为android:imeOptions="actionSearch|flagNoFullscreen"后就OK了。

3、代码设置弹出键盘是否挤压窗口

不挤压窗口:

getActivity().getWindow().setSoftInputMode(
				WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING);
挤压窗口:

getActivity().getWindow().setSoftInputMode(
				WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);

一共四种模式:
 SOFT_INPUT_ADJUST_NOTHING
SOFT_INPUT_ADJUST_PAN
SOFT_INPUT_ADJUST_RESIZE
SOFT_INPUT_ADJUST_UNSPECIFIED

4、有时候无法调起键盘

有时候发现用下面代码无法调起键盘:

		InputMethodManager imm = (InputMethodManager)getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
		imm.showSoftInput(mView, 0);

有可能焦点已经落在其他非编辑框View上了,延迟一下可能就好了。输入法弹出时,会检测当前的焦点View是否有效,如果非有效的焦点View,输入法是弹不出来的。

		mView.postDelayed(new Runnable() {
			@Override
			public void run() {
				InputMethodManager imm = (InputMethodManager)getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
				imm.showSoftInput(mView, 0);
			}
		}, 100);



Android键盘使用问题汇总

标签:

原文地址:http://blog.csdn.net/heqiangflytosky/article/details/43735347

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!