レイアウトに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. キーボードがアラートの送信ボタンを隠すのを防ぐダイアログ
- 3. ボタンをクリックしたときにソフトキーボードが隠れるのを防ぐ
- 4. キーボードを隠しているHTCソフトキーボード
- 5. AndroidソフトキーボードがRecyclerViewを隠す
- 6. 戻るボタンでソフトキーボードを隠す
- 7. IPadキーボード「ボタンを隠す」
- 8. Android - ソフトキーボードを隠すためのkeyevent?
- 9. AndroidソフトキーボードがScrollViewのEditTextを隠す
- 10. ファストレーンスキャンがシミュレータを隠すのを防ぐ
- 11. ソフトキーボードのボタンを入力 - Android
- 12. ソフトキーボードが表示されているときにAndroidキーボードが隠れる
- 13. Androidでキーボードを隠す
- 14. ボタンでAndroidキーボードを隠す方法cordovaを使用してクリック
- 15. Xamarin.formsからのキーボードの提案を防ぐことができます
- 16. Android - 特定の文字をソフトキーボードから隠すことはできますか?
- 17. ボタンを押してキーボードを隠す
- 18. Cocoa Touch - UISearchBarキーボード - 「検索」ボタンを隠す
- 19. 投稿ボタンが押されたときに隠れたフォームdivが自動的に隠れるのを防ぐ
- 20. ソフトキーボードをインプットメソッドサービスから隠す
- 21. iOSソフトキーボードを隠すAngularJS
- 22. ボタンのEnterキーを防ぐ方法
- 23. マイクボタンを隠すAndroid仮想キーボード
- 24. phonegapでキーボードを隠す方法android
- 25. ボタンを押したときにキーボードを隠す
- 26. xamarinフォームでボタンをクリックしたときにキーボードを隠す
- 27. 埋め込みMPMoviePlayerViewControllerがstatusBarを隠すのを防ぐ方法
- 28. ホットリンクを防ぐために実際のファイルパスを隠す
- 29. Androidソフトキーボードは、フルスクリーンでCordovaWebViewからの入力を隠します。
- 30. Androidでフォーカスのないソフトキーボードを隠すには?
これは、以前に選択した入力/テキストフィールドからフォーカスを失うという問題があります。 1)入力用の入力を選択します 2)loadUrlは と呼ばれます3)キーボードはまだ起動していますが、何も入力しません(同じ入力にもう入力しません) –
@HaykSaakian Really?私は知らないよ;私が私のために働くものは、私はここに置くときに何か間違いを犯さなかった。 loadUrlを実行しているのと同じWebviewで入力しようとしていると思います。 – Erhannis
多分それはちょうど小さな時間窓であり、あなたのケースでは気付かないでしょうか?私の場合、1秒間に何度もloadUrlを呼び出すページがあります(javacriptでloadUrlを使用してメッセージを挿入するJava Webソケットを使用するチャット・ページ) –