2015-10-20 2 views
2

я создаю Fragment внутри Activity .I а имеет EditText в MainActivity расположения и Fragment расположения приходит под этим вопросом EditText .my это когда я нажимаю EditText мягкая клавиатура не отображается ,Android: Мягкая клавиатура не показывает

В EditText макете я создаю

<EditText 
       android:id="@+id/edt_searchContact" 
       android:layout_width="match_parent" 
       android:layout_height="50dp" 
       android:textCursorDrawable="@drawable/color_cursor" 
       android:background="@drawable/edit_text_line_contacts" 
       android:focusable="true" 
       android:clickable="true" 
       android:hint="Search..."/> 
<requestFocus/> 

для показа экранной клавиатуры, кода, который я дал в Fragment

InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); 
imm.showSoftInput(edt_searchContact, InputMethodManager.SHOW_IMPLICIT); 

В Manifest

android:windowSoftInputMode="adjustPan" 

У меня есть 3 Fragment в один Activity, когда один Fragment приходит, что EditText собирается Видимый в основном Activity макет.

Может кто-нибудь, пожалуйста, помогите мне Спасибо заранее :)

+0

Укажите свой основной код активности и ваши xml-макеты. Где макет рамки и как ваша замена фрагментов в кадре. Полный код, и я не получил проблему с ur в первом случае. – DJphy

ответ

0

Попробуйте это в вашей деятельности

editText = (EditText)findViewById(R.id.txt_yourName); 

      // Request focus and show soft keyboard automatically 
      editText.requestFocus(); 
      getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_VISIBLE); 
+0

где я должен получить «getDialog()». В моей деятельности у меня нет диалогового окна @Akhil Jayakumar –

+1

try getWindow(); –

+0

жаль, что не получаем. Я поместил этот код в свой MainActivity после setContentView (R.layout.activity) –

0

Попробуйте это:

editText.setOnFocusChangeListener(new OnFocusChangeListener() { 
      @Override 
      public void onFocusChange(View v, boolean hasFocus) { 
       editText.post(new Runnable() { 
        @Override 
        public void run() { 
         InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); 
         imm.showSoftInput(edt_searchContact, InputMethodManager.SHOW_IMPLICIT); 
        } 
       }); 
      } 
     }); 
     editText.requestFocus(); 
+0

Я пытался, но не работал –

0

Находясь на onResume Activity в() метод, который вы может написать это:

EditText et = (EditText) findViewById(R.id.et); 
et.requestFocus(); 
InputMethodManager mngr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
mngr.showSoftInput(et, InputMethodManager.SHOW_IMPLICIT); 
+0

жаль, что я пробовал, но не работал –

+0

@BinilSurendran в Manifest write 'android: windowSoftInputMode =" stateUnchanged "', все же, если нет, то вы можете написать 'mngr.toggleSoftInput (InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY); ' –

Смежные вопросы