2013-01-25 66 views
1

我必須檢測軟鍵盤是否打開。我在這裏閱讀了一些關於如何去做的文章,其中一個例子是>this<還有另一個,也許更好一些,但是兩個ar針對相同的目標,檢查layout/View是否被迫調整大小。這裏如何檢查軟鍵盤是否在設備上打開

我的問題是,所有的Java代碼,我不能用java代碼做任何事情,因爲我不知道該API的MonoDroid的等價物,以及其他一些小東西......

Antoher我發現的是,有一個InputMethodService.OnWindowShown()方法/事件,以及鍵盤顯示與否的標識符。

var inputManager = (InputMethodService)GetSystemService(InputMethodService); 
inputManager.OnWindowShown(); 
bool bla = inputManager.IsInputViewShown; 

有沒有一種方法來確定鍵盤是否打開,用這些行,還是我必須做調整大小的事情?如果調整大小是唯一的事情,那麼在Mono for Android中它的工作原理是什麼?

回答

2

試試這個:如果顯示或不軟鍵盤

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 

    if (imm.isAcceptingText()) { 
     writeToLog("Software Keyboard was shown"); 
    } else { 
     writeToLog("Software Keyboard was not shown"); 
    } 
+0

了一個錯誤,getActivity()不知道......做我必須爲它導入一些特別的東西? – EaranMaleasi

+0

我編輯我的答案 – jlopez

+0

檢查這個答案:http://stackoverflow.com/a/4737265/1484779 – jlopez

1

無法檢測,但可以間接地知道,軟鍵盤被知道你的活動視圖中顯示調整大小
這2條線隱藏軟鍵盤..

var input = (InputMethodManager)GetSystemService(InputMethodService); 
input.HideSoftInputFromWindow(editText1.WindowToken, HideSoftInputFlags.None); 

還可以看到..

+0

我不想隱藏鍵盤,我想知道如果鍵盤被打開,所以我可以隱藏一個tabWidget ,讓位於屏幕上的很多空間。 – EaranMaleasi

相關問題