私はアンドロイドのソフトキーボードネイティブでなければならない同じ空間でビューを表示できるカスタムビューを持っています。Androidは同時に表示と非表示のキーボードを表示します。奇妙な行動
キーボードを開いてボタンをクリックし、キーボードを非表示にして、キーボードが同じ場所に他のビューを表示する必要があります。
私はこれを現在、キーボードを隠してカスタム表示を表示していますが、奇妙な振る舞いと最小の遅れと重なりがあります。
誰かに同様のものを実装しましたか?
私はアンドロイドのソフトキーボードネイティブでなければならない同じ空間でビューを表示できるカスタムビューを持っています。Androidは同時に表示と非表示のキーボードを表示します。奇妙な行動
キーボードを開いてボタンをクリックし、キーボードを非表示にして、キーボードが同じ場所に他のビューを表示する必要があります。
私はこれを現在、キーボードを隠してカスタム表示を表示していますが、奇妙な振る舞いと最小の遅れと重なりがあります。
誰かに同様のものを実装しましたか?
SEキーボードを表示/非表示するには、次のような機能:
/**
* Hides the soft keyboard
*/
public void hideSoftKeyboard() {
if(getCurrentFocus()!=null) {
InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
}
}
/**
* Shows the soft keyboard
*/
public void showSoftKeyboard(View view) {
InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
view.requestFocus();
inputMethodManager.showSoftInput(view, 0);
}
私はGitHubのプロジェクトをチェックし、バグを発見し、私は次のコードでそのバグを修正したしている:
if (isRedPanelVisible()) {
showRedPanel(false);
showKeyboard(true, new KeyboardCallback() {
@Override
public void onKeyboardDone(boolean isVisible) {
}
});
}
if (KeyboardVisibilityEvent.isKeyboardVisible(TestActivity.this)) {
hideKeyboard(TestActivity.this);
new android.os.Handler().postDelayed(new Runnable() {
@Override
public void run() {
showRedPanel(true);
}
}, 100);
注:これは、ボタンのクリックイベントの下でTestActivity.javaにこれを入れ、前のコードを削除するだけです。あなたのreadPanelが表示されている場合、私は
をやった
は私は
false
へshowRedPanel
と呼ばれ、キーボードを開こう。 hideKeyboard:私はキーボードの可視性イベントのチェックを追加したキーボードが表示されている場合、私はキーボードが離れて行くとコード100ミリの遅延後
true
でshowReadPanel
を呼び出す作るためにhideKeyboard
を呼び出した後public void hideKeyboard(Activity activity) { // Check if no view has focus: try { View view = activity.getCurrentFocus(); if (view != null) { InputMethodManager inputManager = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE); inputManager.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); } } catch (Exception e) { } }
こんにちは、あなたの答えに感謝します。しかし、この解決策は、キーボードと赤のパネルが同時に表示されるという問題を解決するだけです。もう1つの問題(どちらも表示されていない場合)はまだ存在し、さらに目に見えます。私は、重要な質問は、どのように単一のレイアウト/レンダリングパスで赤いパネルとキーボードの可視性を切り替えて、シームレスにスワップするかということです。 – sidon
その場合、[KeyboardView](https://developer.android.com/reference/android/inputmethodservice/KeyboardView.html)とredPanelレイアウトを1つのレイアウトコンテナにレンダリングする必要があります。 –
チェック[この](http://stackoverflow.com/a/1109108/4790490) – Hearty
は、F君をやっ役に立つかもしれませんそれをigure?私は同じことをする必要があります。 – sidon
質問にいくつかのコードを投稿 –