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

发布于 2024-10-13 18:56:53 字数 398 浏览 2 评论 0原文

此代码似乎不适用于横向模式:

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

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

有没有办法让软键盘在横向模式下显示?

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 ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

转瞬即逝 2024-10-20 18:56:53

您需要使用强制显示

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

You need to use show forced

InputMethodManager imm;
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,InputMethodManager.HIDE_IMPLICIT_ONLY);
imm.showSoftInput(this.editText,InputMethodManager.SHOW_FORCED);
酸甜透明夹心 2024-10-20 18:56:53

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

我更喜欢添加

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

到我的 EditTextStyle 中,这样我总是可以捕获 onGlobalLayout() 等。现在您可以使用 SHOW_IMPLICIT。只需确保您的 UI 在如此小的区域中看起来不错,并在不需要时删除自动更正。

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.

岁月如刀 2024-10-20 18:56:53
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);

    } 
}); 
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);

    } 
}); 
浮世清欢 2024-10-20 18:56:53

更简单的 XML 改变答案
https://stackoverflow.com/a/13179855/1029110

 <EditText   
        android:id="@+id/txtInLandscapeVw"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:imeOptions="flagNoExtractUi">   
        <requestFocus />
    </EditText>

因此添加

android:imeOptions="flagNoExtractUi

Simpler XML changes answer
https://stackoverflow.com/a/13179855/1029110

 <EditText   
        android:id="@+id/txtInLandscapeVw"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:imeOptions="flagNoExtractUi">   
        <requestFocus />
    </EditText>

So add

android:imeOptions="flagNoExtractUi

and

<requestFocus />

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文