2016-06-07 93 views
0

我有一個仍然可見的軟鍵盤好奇的情況。 簡單的流程。 沒有任何編輯文本的活動,其中隱藏軟鍵盤。 從清單:仍然可見的軟鍵盤

<activity 
     android:name=".activities.MainActivity" 
     android:theme="@style/MainActivity" 
     android:windowSoftInputMode="stateAlwaysHidden" /> 

...,也從代碼

 this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 

檢查在該活動中我有一個包含網頁視圖片段。我已經添加了touchlistener到這個發送'space'鍵的webview。

protected View.OnTouchListener onTouchListener = new View.OnTouchListener() { 
    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
     if (event.getAction() == MotionEvent.ACTION_DOWN) { 
       Instrumentation inst = new Instrumentation(); 
       inst.sendKeyDownUpSync(KeyEvent.KEYCODE_SPACE); 
     } 
     return false; 
    } 
}; 

它處理啓動/暫停效果,其中我有該webview的視頻視頻內容。以前我試圖通過JavaScript處理程序與vimeo視頻播放器進行通信,但它不起作用。發送關鍵事件是非常簡單的解決方案,並且在除一個設備以外的所有設備上都可以很好地工作在調用touchlistener時dell t01c上會出現軟件鍵盤。我可以用簡單的方式將它隱藏起來

InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE); 
imm.hideSoftInputFromWindow(getWindow().getCurrentFocus().getWindowToken(), 0); 

但它遺棄了沉浸式活動模式 - 導航欄顯示並消失。如何永久阻止鍵盤?有沒有人有類似的問題?

回答

-1

在你的Utils類試試這個

把這種靜態方法

public static void hideKeyboard(Activity activity) { 
      try { 
       InputMethodManager input = (InputMethodManager) activity 
         .getSystemService(Activity.INPUT_METHOD_SERVICE); 
       input.hideSoftInputFromWindow(activity.getCurrentFocus().getWindowToken(), 0); 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
     } 

調用此方法。無論您想要隱藏的鍵盤由Utils.hideKeyboard(YOURACTIVITY.this);

+1

你看完問題到底了嗎?我寫道,這個解決方案正在破壞沉浸式模式。 – Nihilus13