2015-03-08 1 views
1

Не уверен, если это отношение, но я использую LG G3 с Android 4.4.2Отображение и скрытие мягкой keboard не работает

У меня есть фрагмент, где я хочу клавиатуры, чтобы показать, так что я сделал следующее :

txtContact = (EditText) rootView.findViewById(R.id.txtContact); 
InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); 
imm.hideSoftInputFromWindow(txtContact.getWindowToken(), InputMethodManager.SHOW_IMPLICIT); 

и разводка это, в том числе requestFocus для соответствующего поля:

<EditText 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:inputType="textMultiLine" 
     android:ems="10" 
     android:lines="10" 
     android:layout_margin="10dp" 
     android:id="@+id/txtContact"> 

     <requestFocus /> 
    </EditText> 

При открытии этого фрагмента, курсор, где она должна быть, но клавиатура не есть, только при нажатии внутри поля они появляются.

Другая проблема противоположна первой. На другом фрагменте я хочу скрыть клавиатуру, когда откроется фрагмент, несмотря ни на что. Причина этого заключается в том, что пользователь может открыть этот фрагмент после закрытия другого, где была показана клавиатура, поэтому я хочу убедиться, что она закрывается, обратите внимание, что я не знаю, показана ли клавиатура, я хочу, чтобы она остаются закрытыми, если они были закрыты или были закрыты, если они были открыты. У меня есть только ListView в этом фрагменте, так что я сделал следующее:

lv = (ListView) rootView.findViewById(android.R.id.list); 
InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); 
imm.hideSoftInputFromWindow(lv.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); 

, но она отказывается делать какие-либо эффект на клавиатуре и остается открытым.

Что я делаю неправильно?

+0

Почему вы вызываете 'hideSoftInputFromWindow()', когда хотите показать клавиатуру? Рассмотрим использование 'showSoftInput()'. – biegleux

+0

Я изменил его на im.showSoftInput (txtContact, InputMethodManager.SHOW_IMPLICIT); но это не повлияло, клавиатура не отображается – Amos

+0

Где вы ее вытащите? – biegleux

ответ

1

Попробуйте позвонить по номеру в onResume() или введите номер телефона Runnable. Если ваш Fragment - DialogFragment, то необходимо позвонить getDialog().getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_VISIBLE); в onCreateView().