[解決済み] EditText、外部タッチでフォーカスをクリアする
質問
私のレイアウトには
ListView
,
SurfaceView
と
EditText
. をクリックすると
EditText
をクリックすると、フォーカスを得て、画面上のキーボードがポップアップ表示されます。の外をクリックすると
EditText
の外側をクリックすると、まだフォーカスがあります(そうでないはずです)。
私は
OnTouchListener
を設定し、手動で
EditText
のフォーカスを手動でクリアします。しかし、あまりにもハッキングのように思える...
私はまた、別のレイアウトで同じ状況を持っています。異なるタイプのアイテムを持つリストビューで、そのうちのいくつかは
EditText
を持つものもあります。それらは私が上で書いたのと同じように動作します。
タスクは
EditText
がフォーカスを失うようにすることです。
私はここで同じような質問を見ましたが、解決策は見つかりませんでした...。
どのように解決するのですか?
私はこれらの解決策をすべて試しました。 edc598のものが最も動作に近かったのですが、タッチイベントが他の
View
にはタッチ イベントがトリガーされませんでした。誰かがこの動作を必要とする場合に備えて、これは私が最終的に行ったことです。
私は(見えない)
FrameLayout
という
touchInterceptor
を最後の
View
を配置することで、すべてのレイアウトに重なるようにします (
を編集します。
を使用する場合は
RelativeLayout
を親レイアウトとして使用し
touchInterceptor
fill_parent
属性) を使用しています。次に、これを使用して、タッチをインターセプトし、タッチが
EditText
の上にあるかどうかを判断するために使用します。
FrameLayout touchInterceptor = (FrameLayout)findViewById(R.id.touchInterceptor);
touchInterceptor.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
if (mEditText.isFocused()) {
Rect outRect = new Rect();
mEditText.getGlobalVisibleRect(outRect);
if (!outRect.contains((int)event.getRawX(), (int)event.getRawY())) {
mEditText.clearFocus();
InputMethodManager imm = (InputMethodManager) v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
}
}
}
return false;
}
});
タッチ操作のフォールスルーにはfalseを返す。
ハチャメチャですが、私の場合はこれだけで大丈夫でした。
関連
-
[解決済み] Androidでアクティビティ起動時にEditTextにフォーカスが当たらないようにする方法
-
[解決済み] 編集テキストをクリックした後、ソフトキーボードを隠すには?
-
[解決済み] プログラム的に電話をかけるには?
-
[解決済み] 「KotlinとAndroidで「パラメータTを推測するのに十分な情報がありません。
-
[解決済み] これはどういうことですか?失敗 [INSTALL_FAILED_CONTAINER_ERROR]?
-
[解決済み] Androidのadb logcatでTAG名で特定のメッセージを除外する方法は?
-
[解決済み] 通知をクリックした後にアプリケーションを開く
-
[解決済み] EditTextをReadOnlyにする
-
[解決済み] フラグメント間の値の受け渡し方法
-
[解決済み] グリッドビューの高さが削減される
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 編集テキストをクリックした後、ソフトキーボードを隠すには?
-
[解決済み] android EditText - 入力終了イベント
-
[解決済み] ArrayAdapter<myClass> の使用方法
-
[解決済み] Android Debug Bridgeでアプリケーションのインストール時にINSTALL_FAILED_VERSION_DOWNGRADEを無視する方法はありますか?
-
[解決済み] プログラムでソフトキーボードを開く
-
[解決済み] FragmentPagerAdapterのgetItemが呼び出されない
-
[解決済み] キャンバスに複数行のテキストを描画する
-
[解決済み] アダプタからActivityメソッドを呼び出す
-
[解決済み] サポートライブラリのアクションバーをPreferenceActivityに追加するには?
-
[解決済み] Recyclerviewと異なるタイプの行のインフレーションの処理