当设备处于横向模式时显示软键盘

此代码似乎不能在横向模式下工作:

EditText destinationSearch = (EditText) findViewById(R.id.destinationSearch); 

destinationSearch.requestFocus(); InputMethodManager imm =(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(destinationSearch,InputMethodManager.SHOW_IMPLICIT);

是否有任何解决方案在风景模式下显示软键盘?


你需要使用show强制

InputMethodManager imm;
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,InputMethodManager.HIDE_IMPLICIT_ONLY);
imm.showSoftInput(this.editText,InputMethodManager.SHOW_FORCED);

原因在于横向模式通常将软键盘放在新的全屏窗口中。 正如Bakih所说,武力会起作用,但全屏幕窗口有更多效果,SHOW_FORCED也是如此。

我更喜欢添加

    <item name="android:imeOptions">flagNoFullscreen</item>

到我的EditTextStyle,所以我总是可以捕获onGlobalLayout()等。 现在你可以使用SHOW_IMPLICIT了。 只要确保你的用户界面在这样一个小区域看起来不错,如果不需要的话删除自动更正。


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/93033.html

上一篇: Show soft keyboard when the device is landscape mode

下一篇: Android: Keyboard input adds new textview