2013-04-22 101 views
1

我已經做了很好的搜索,但我從來沒有找到一個工作的解決方案,所以這就是爲什麼我張貼在這裏。阻止隱藏視圖的鍵盤android

我有一個android應用程序,其中有一些TableView(EditText,TextView和CheckBox)。

我實現了我自己的鍵盤,所以我可以控制用戶輸入的信息。

我的TableLayout在ScrollView中,因爲TableLayout可以有很多行。

我的問題是當我的鍵盤顯示出來時,它隱藏了EditText的焦點。通常,android會將EditText向上推,以使其可見,但不適用於我的情況。我該如何解決這個問題?

回答

1

您是否嘗試過的屬性windowSoftInputMode添加到您的清單文件:

android:windowSoftInputMode="adjustResize" 

android:windowSoftInputMode="adjustPan" 

<activity>標籤內。

+0

你好TronicZornB,是的,我試了一下,並沒有爲我工作:/ – Tristan 2013-04-22 15:15:33

+0

你認爲問題是,我的鍵盤太大,因此Android不知道該怎麼處理這個問題?因爲我的鍵盤比Android的文本鍵盤大1倍和半個時間,例如 – Tristan 2013-04-22 15:17:56

+0

@Tristan,這很奇怪,但實際上爲我工作的是使用'adjustUnspecified'。你試過那個嗎? – TronicZomB 2013-04-22 15:18:37

0

總是有同樣的問題。我發現windowsSoftInputMode =「adjustPan」或其他選項不適用於自定義鍵盤。

我CustomKeyboard是一個類,實現了KeyboardView,一個XML鏈接到本keyboardView並有2種方法可以顯示或隱藏它...

如果某人有一個想法,爲什麼adjustPan不與自定義工作鍵盤,請讓我們知道!

特里斯坦

0

我有自定義鍵盤使用KeyboardView同樣的問題,我通過設置項目選擇與短暫的延遲解決它。

public boolean isCustomKeyboardVisible() { 
return keyboardView.getVisibility() == View.VISIBLE; 
} 

public void showCustomKeyboard() { 
    if (!isCustomKeyboardVisible()) { 
    keyboardView.setVisibility(View.VISIBLE); 
      //Calling my custom listener 
    onKeyboardVisibilityChanged.visibilityChanged(true); 
    listView.postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      listView.setSelection(position); 
     } 
    }, 50); 
} 
} 

public void hideCustomKeyboard() { 
if (isCustomKeyboardVisible()) { 
    keyboardView.setVisibility(View.GONE); 
    onKeyboardVisibilityChanged.visibilityChanged(false); 
} 
}