频道栏目
首页 > 程序开发 > 移动开发 > Android > 正文
Android Fragment:开发大屏幕平板时UserDictionaryAddWordFragment编辑后软键盘不能自动隐藏的问题
2012-12-28 16:26:25      个评论      
收藏   我要投稿
      昨天收到一个bug,描述如下:

1 Enter Settings-->Language&input

2 Choose personal dictionary

3.Choose add in menu

4.Input some word and choose personal dictionary

[Expected result]

The word can be added to dictionary and no any error

[Error]

The input panel can't hide

进入添加用户字典后编辑并退出,但是input panel不能自动隐藏。这个问题涉及到fragment的概念,关于理解fragment的概念,可以参考https://www.cnblogs.com/mybkn/articles/2455134.html。

        添加用户字典是在UserDictionaryAddWordFragment中进行的,UserDictionaryAddWordFragment继承于Fragment。

\packages\apps\Settings\src\com\android\settings\inputmethod\UserDictionaryAddWordFragment.java

在它的onPause()方法中添加如下code:

  boolean autoHide = getResources().getBoolean(R.bool.auto_hide_keyboard_when_onpause);

        if (autoHide){www.2cto.com

            ContexttContext = getActivity();

           InputMethodManager imm =(InputMethodManager)getActivity().getSystemService(tContext.INPUT_METHOD_SERVICE);

           imm.hideSoftInputFromWindow(getActivity().getCurrentFocus().getWindowToken(),0);

        }

其中的R.bool.auto_hide_keyboard_when_onpause这个值在\packages\apps\Settings\res\value下的bool.xml中定义。smart-phone的这个值是false,value-sw600dp目录下的bool.xml中的值为true。

Fragment的onPause方法是在看不见这个Fragment的时候被调用的,所以把这段code加在onPause方法中即可实现退出这个Fragment时自动隐藏输入法界面。

 

点击复制链接 与好友分享!回本站首页
上一篇:HTC Android Hotspot 热点配置 之DHCP
下一篇:Android中文简体繁体互相转换的实现(繁简互转)
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站