2016-01-15 4 views
1

My EditText по какой-то причине действует странно.Android Bug, RecyclerView открывает полноценную клавиатуру после того, как клавиатура EditText закрыта кликом

Мой edittext содержится внутри прокручиваемого RecyclerView. Когда я нажимаю на редактирование текста, клавиатура отображается очень хорошо, и когда нажата кнопка «Готово» с клавиатуры, клавиатура закрывается, НО появляется полная клавиатура. Кто-нибудь думал, в чем проблема, или способ предотвратить появление полнофункциональной клавиатуры? Благодарю.

EDIT :: Мне удалось решить проблему с Done, но когда клавиатура открыта и я прокручиваю вниз recyclerview, клавиатура закрывается и появляется полная клавиатура. может быть проблемой с фокусом, как указано в одном из ответов ниже.

public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { 
       if (actionId == EditorInfo.IME_ACTION_DONE) { 
        InputMethodManager imm = (InputMethodManager) v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); 
        imm.hideSoftInputFromWindow(v.getWindowToken(), 0); 
        invAdded.clearFocus(); 
        return true; 
       } 
       return false; 
      } 

ОРИГИНАЛ ::

<EditText 
     android:id="@+id/di_inventory_added" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="0.2" 
     android:background="@android:color/transparent" 
     android:inputType="numberDecimal" 
     android:singleLine="true" 
     android:imeOptions="actionDone" 
     /> 

и расположение

<android.support.v7.widget.RecyclerView 
    android:layout_below="@id/include" 
    android:id="@+id/daily_inventory_recycle_view" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" /> 

контейнера, а также actioneditlistener

invAdded.setOnEditorActionListener(new TextView.OnEditorActionListener() { 
      @Override 
      public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { 
       if (actionId == EditorInfo.IME_ACTION_DONE) { 

        invAdded.clearFocus(); 
       } 
       return false; 
      } 
     }); 

enter image description here

enter image description here

+0

Что вы подразумеваете под полной клавиатурой? – chandil03

+0

полная алфавитная и цифровая клавиатура, а не клавиатура –

ответ

1

Похоже, вы вы не возвращаете правильное логическое значение в onEditorAction методе обратного вызова.

Если вы хотите скрыть клавиатуру, вы должны сообщить системе, что вы использовали событие done, возвратив true в onEditorAction метод.

invAdded.setOnEditorActionListener(new TextView.OnEditorActionListener() { 
     @Override 
     public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { 
      if (actionId == EditorInfo.IME_ACTION_DONE) { 

       invAdded.clearFocus(); 
      } 
      return true; // return true(event consumed) 
     } 
    }); 

Я не тестировал его. Это просто догадка, что вы можете попробовать. Надеюсь, это поможет.

+0

тестирование сейчас, сообщит вам после сборки, спасибо –

+0

не работает, к сожалению .. –

+0

теперь я понял, что вы проблема. от вас отредактированный вопрос. – chandil03

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