6

ボタンをクリックすると表示される相対的なレイアウトのポップアップがあります。同じ画面に他のビューがいくつかあり、ポップアップがそれらをカバーしています。しかし、 popup をクリックすると、背後にあるコントロール/ビューがクリックされます。これを無効にする方法は?

(私が持っている1つの解決策は、すべてのビューとを取得することsetClickable = falseです。)

しかし、他のビューが無効に設定されるように現在のビューにフォーカスするなど、他の解決策を探しています。

4

4 に答える 4

6

私はこれと同じ問題を抱えていましたが、最後にすべてをclickable =false として設定する代わりに、ポップアップ レイアウトにclickable= trueを追加するだけで修正されました。ポップアップの背後にあるクリック可能なビューは、ポップアップを介したクリック イベントに応答しなくなりました。:) そして、ポップアップをダイアログに変更する必要さえありませんでした。:)

于 2014-06-16T18:23:24.327 に答える
2

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.
        }
    });
于 2012-10-13T09:39:38.967 に答える
2

ダイアログを使用します。これは、ポップアップ要件の最適なソリューションだと思います。

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);
于 2012-11-24T12:57:58.210 に答える
1

このためにあなたRelativeLayoutを作るBringToFront()

と他のビューを作るSetEnabled(false)

于 2012-10-13T06:53:36.747 に答える