Show soft keyboard when the device is landscape mode
This code seems not to work in Landscape mode:
EditText destinationSearch = (EditText) findViewById(R.id.destinationSearch);
destinationSearch.requestFocus(); InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(destinationSearch, InputMethodManager.SHOW_IMPLICIT);
Is there any solution to show the soft keyboard in Landscape mode ?
你需要使用show强制
InputMethodManager imm;
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,InputMethodManager.HIDE_IMPLICIT_ONLY);
imm.showSoftInput(this.editText,InputMethodManager.SHOW_FORCED);
The reason is that landscape mode most often put soft keyboard in a new full screen window. As Bakih said, force will work but the full screen window have more effects and so do SHOW_FORCED.
I prefer adding
<item name="android:imeOptions">flagNoFullscreen</item>
to my EditTextStyle so I can always catch onGlobalLayout() and so on. Now you can use SHOW_IMPLICIT. Just make sure your UI looks good in such a small area and remove autoCorrect if not needed.
EditText editText = (EditText)findViewById(R.id.editText);
editText.setFocusableInTouchMode(false);
final Context context = this;
editText.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
v.requestFocusFromTouch();
InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(v, InputMethodManager.SHOW_FORCED);
}
});
链接地址: http://www.djcxy.com/p/93034.html
上一篇: 显示Android软键盘
下一篇: 当设备处于横向模式时显示软键盘