ボタンをクリックすると表示される相対的なレイアウトのポップアップがあります。同じ画面に他のビューがいくつかあり、ポップアップがそれらをカバーしています。しかし、 popup をクリックすると、背後にあるコントロール/ビューがクリックされます。これを無効にする方法は?
(私が持っている1つの解決策は、すべてのビューとを取得することsetClickable = false
です。)
しかし、他のビューが無効に設定されるように現在のビューにフォーカスするなど、他の解決策を探しています。
ボタンをクリックすると表示される相対的なレイアウトのポップアップがあります。同じ画面に他のビューがいくつかあり、ポップアップがそれらをカバーしています。しかし、 popup をクリックすると、背後にあるコントロール/ビューがクリックされます。これを無効にする方法は?
(私が持っている1つの解決策は、すべてのビューとを取得することsetClickable = false
です。)
しかし、他のビューが無効に設定されるように現在のビューにフォーカスするなど、他の解決策を探しています。
私はこれと同じ問題を抱えていましたが、最後にすべてをclickable =false として設定する代わりに、ポップアップ レイアウトにclickable= trueを追加するだけで修正されました。ポップアップの背後にあるクリック可能なビューは、ポップアップを介したクリック イベントに応答しなくなりました。:) そして、ポップアップをダイアログに変更する必要さえありませんでした。:)
RelativeLayout オブジェクトに対して setOnClickListener() をアクティブにします。これにより、すべてのクリックがキャッチされ、背後にあるコントロール/ビューがクリックされるのを防ぎます。
例:-
RelativeLayout rObj = (RelativeLayout) findViewById(R.id.yourRelativeLayout);
rObj.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// filter touches when underlying view is Obscured by this view.
}
});
ダイアログを使用します。これは、ポップアップ要件の最適なソリューションだと思います。
final Dialog dialog = new Dialog(NewEntryActivity.this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.interview_tab6_popup_drink_containg_alcohol);
dialog.setCancelable(true);
dialog.setCanceledOnTouchOutside(true);
このためにあなたRelativeLayout
を作るBringToFront()
と他のビューを作るSetEnabled(false)