当我改变片段.我使用它关闭键盘,因为屏幕上有一个EditText字段.我只是觉得必须有一个更好的方法,但我没有找到任何关于检测键盘是否在屏幕上的东西.
Activity activity = getActivity();
InputMethodManager inputMethodManager = (InputMethodManager) activity.getSystemService(Activity.INPUT_METHOD_SERVICE);
try
{
inputMethodManager.hideSoftInputFromWindow(activity.getCurrentFocus().getWindowToken(), 0);
}
catch (Exception e)
{
}
Run Code Online (Sandbox Code Playgroud)
Chr*_*ins -1
我能想到的唯一真正的方法是使用该onConfigurationChanged(Configuration config)方法:
KeyboardHidden和Configuration的组合应该可以做到。
class MyFrag extends Fragment{
@Override
public void onConfigurationChanged(Configuration config){
//Check flags
switch(config.keyboardHidden){
case KEYBOARDHIDDEN_NO:
// do something
break;
case KEYBOARDHIDDEN_YES:
break;
}
}
}
Run Code Online (Sandbox Code Playgroud)
当然,这依赖于您拥有清单和父活动来接受这些配置更改:
<activity ...
android:configChanges="keyboardHidden|orientation|screenSize|screenLayout"/>
Run Code Online (Sandbox Code Playgroud)
您还会注意到Activity具有相同的可重写方法,活动将首先获取该方法,然后将其传递给附加的Fragment方法。
对于细心的人来说,您可以使用上下文即时执行此操作:
Configuration config = getResources().getConfiguration();
Run Code Online (Sandbox Code Playgroud)
希望有所帮助,它也意味着考虑到硬键盘,但我确信您会遇到一些特定于设备的错误!
| 归档时间: |
|
| 查看次数: |
6917 次 |
| 最近记录: |