9

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 ?

Heath Hunnicutt
  • 18,667
  • 3
  • 39
  • 62
andreea
  • 3,425
  • 2
  • 18
  • 10

4 Answers4

12

You need to use show forced

InputMethodManager imm;
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,InputMethodManager.HIDE_IMPLICIT_ONLY);
imm.showSoftInput(this.editText,InputMethodManager.SHOW_FORCED);
Cyril Gandon
  • 16,830
  • 14
  • 78
  • 122
Bakih
  • 286
  • 1
  • 6
  • 13
3

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.

Adam Wigren
  • 383
  • 2
  • 11
0
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);

    } 
}); 
josliber
  • 43,891
  • 12
  • 98
  • 133
Bilal Shahid
  • 490
  • 9
  • 16
  • 2
    You might find it useful to add an explanation to your answer so readers can see why your answer is the best, rather than just post code alone. You can add to your answer by pressing the "`edit`" button. – Brian Tompsett - 汤莱恩 Jun 06 '15 at 18:25
0

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 />

Rahul Kahale
  • 519
  • 6
  • 19