当前位置:软件学习 > Word >>

Android Fragment:开发大屏幕平板时UserDictionaryAddWordFragment编辑后软键盘不能自动隐藏的问题

      昨天收到一个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的概念,可以参考http://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.zzzyk.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时自动隐藏输入法界面。
 
补充:移动开发 , Android ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,