レイアウトにWebViewといくつかのボタンがあります。 WebViewに大きなタグがあります。このアプリはテキストファイルの編集に使用されます。このボタンはWebView内のテキストエリアを表示するために使用されます。ユーザーがボタンを押すと(テキストビューを移動するための矢印ボタンなど)、キーボードが閉じられます。私はtoggleSoftInputを使用していますが、表示するかどうかを切り替えるだけです。ボタンを押すと、ソフトキーボードが隠れなくなります。私は私の特定の問題について何も発見していない。私は何週間も探しました。誰も私のボタンがAndroid上でソフトキーボードを隠すのを止める方法について考えていますか?Androidキーボードのソフトキーボードを隠すことを防ぐボタン
答えて
問題を解決するには、キーボードが常に表示された状態にし、操作が完了したときにユーザーにキーボードを閉じることがあります。
InputMethodManager inputManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.toggleSoftInput (InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY);
このコードは、あなたのアクティビティのonCreate()メソッドで試してみてください。 ユーザーがキーボードの閉じるボタンまたは戻るボタンを押した場合は、閉じてください。そして、あなたはそのシナリオに干渉してはならないと思います。 アクションが完了したら、コードからキーボードを閉じることができます。
私はまったく同じボートにいるので、理想的な解決策を見つけたなら、それを聞いてみたいです。
編集: 成功!とにかく前よりずっと良い。私は古いソリューションを削除しました。これはこれが優れているからです。
https://stackoverflow.com/a/10536033/513038に記載されているように、loadData()はキーボードを非表示にします。 しかし、私はWebViewのhideSoftKeyboard()で、imm.isActive(mWebView)を介してWebViewがアクティブかどうかを確認するためにInputMethodManagerをチェックすることを発見しました。
したがって、loadData()の前にEditTextにフォーカスを切り替え、直後にWebViewに戻すと、キーボードがスティックされます。それは簡単に大文字に切り替える、私は、Webviewにフォーカスを返すと思う(実際には、これは常に起こるようではありませんが、それに依存します)しかし、それはキーボードが離れてちらつきよりも目立っています。
何が起こる必要があるの要旨は以下の通りです。
WebViewを拡張します。コンストラクタで
public EditText mFocusDistraction;
を、次の行があります:それをのEditTextフィールドを与える
public void loadUrl(String s) {
mFocusDistraction.requestFocus();
super.loadUrl(s);
this.requestFocus();
}
それは基本的に、作業を取得する必要があります次にloadUrlを()をオーバーライド
mFocusDistraction = new EditText(context);
addView(mFocusDistraction);
を。これは、しかし、少しバギーですので、ここでより完全なクラスです:
import android.app.Activity;
import android.content.Context;
import android.util.AttributeSet;
import android.webkit.WebView;
import android.widget.EditText;
public class WebViewMod extends WebView {
public EditText mFocusDistraction;
public Context mContext;
public WebViewMod(Context context) {
super(context);
init(context);
}
public WebViewMod(Context context, AttributeSet attrs) {
super(context, attrs);
init(context);
}
public WebViewMod(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init(context);
}
public WebViewMod(Context context, AttributeSet attrs, int defStyle, boolean privateBrowsing) {
super(context, attrs, defStyle, privateBrowsing);
init(context);
}
public void init(Context context) {
// This lets the layout editor display the view.
if (isInEditMode()) return;
mContext = context;
mFocusDistraction = new EditText(context);
mFocusDistraction.setBackgroundResource(android.R.color.transparent);
this.addView(mFocusDistraction);
mFocusDistraction.getLayoutParams().width = 1;
mFocusDistraction.getLayoutParams().height = 1;
}
@Override
public void loadUrl(final String url) {
if (mContext instanceof Activity && this.isFocused()) {
((Activity)mContext).runOnUiThread(new Runnable() {
@Override
public void run() {
mFocusDistraction.requestFocus();
WebViewMod.super.loadUrl(url);
WebViewMod.this.requestFocus();
}
});
} else {
super.loadUrl(url);
}
}
}
XamarinのAndroid(オルタナティブ):
InputMethodManager inputManager = (InputMethodManager)GetSystemService(Context.InputMethodService);
inputManager.ToggleSoftInput (ShowFlags.Forced, HideSoftInputFlags.ImplicitOnly);
- 1. ボタンをクリックしたときにソフトキーボードが隠れるのを防ぐ
- 2. キーボードを隠しているHTCソフトキーボード
- 3. IPadキーボード「ボタンを隠す」
- 4. AndroidソフトキーボードがScrollViewのEditTextを隠す
- 5. Android - ソフトキーボードを隠すためのkeyevent?
- 6. ソフトキーボードのボタンを入力 - Android
- 7. ソフトキーボードが表示されているときにAndroidキーボードが隠れる
- 8. Androidでキーボードを隠す
- 9. Android - 特定の文字をソフトキーボードから隠すことはできますか?
- 10. Cocoa Touch - UISearchBarキーボード - 「検索」ボタンを隠す
- 11. ソフトキーボードをインプットメソッドサービスから隠す
- 12. マイクボタンを隠すAndroid仮想キーボード
- 13. phonegapでキーボードを隠す方法android
- 14. 埋め込みMPMoviePlayerViewControllerがstatusBarを隠すのを防ぐ方法
- 15. Androidソフトキーボードは、フルスクリーンでCordovaWebViewからの入力を隠します。
- 16. Androidウェブインターフェースのリンクの邪魔を防ぐ
- 17. ソフトキーボードがフォーカスを失うのを隠す
- 18. 複数の通知音を防ぐandroid
- 19. iPadのソフトキーボードを隠す方法
- 20. ViewPagerのフラグメントからソフトキーボードを隠す
- 21. delphi webbrowser:javascriptエラーを防ぐか、隠すには?
- 22. ContextMenuが一度隠れてしまうのを防ぐ
- 23. ソフトキーボードが隠れているのを隠すためのコード
- 24. 終了ボタンを押さずにキーボードを隠す方法は?
- 25. ボタンを押した後にキーボードを隠す
- 26. iOSのキーボードを隠すことができません
- 27. キーボードのiosを隠す
- 28. jquery - この競合状態を防ぐ
- 29. ボタンを偶発的にダブルクリックするのを防ぐ
- 30. フラグメントトランザクション時にソフトキーボードを隠す方法は?
これは、以前に選択した入力/テキストフィールドからフォーカスを失うという問題があります。 1)入力用の入力を選択します 2)loadUrlは と呼ばれます3)キーボードはまだ起動していますが、何も入力しません(同じ入力にもう入力しません) –
@HaykSaakian Really?私は知らないよ;私が私のために働くものは、私はここに置くときに何か間違いを犯さなかった。 loadUrlを実行しているのと同じWebviewで入力しようとしていると思います。 – Erhannis
多分それはちょうど小さな時間窓であり、あなたのケースでは気付かないでしょうか?私の場合、1秒間に何度もloadUrlを呼び出すページがあります(javacriptでloadUrlを使用してメッセージを挿入するJava Webソケットを使用するチャット・ページ) –