2016-01-15 132 views
1

由於某種原因,我的EditText行事怪異。Android BUG,RecyclerView在EditText的鍵盤完成加載後打開全鍵盤

我的edittext包含在一個滾動的RecyclerView中。當我點擊編輯文本時,鍵盤顯示正常,當點擊鍵盤上的「完成」時,鍵盤關閉,但是全鍵盤顯示。任何想法是什麼問題或防止全鍵盤顯示的方法?謝謝。

編輯::我設法解決完成問題,但當鍵盤打開,我向下滾動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; 
      } 

ORIGINAL ::

<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回調方法返回正確的布爾值。

如果要隱藏鍵盤,則必須通過返回true中的onEditorAction方法告訴系統已消耗done按鈕事件。

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