2012-10-13 5 views
6

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

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

しかし、私は他のいくつかの解決策を探しています、他のビューが無効に設定されているように、現在のビューにフォーカスを取得したいです。 RelativeLayout object.Thisこのために

答えて

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); 
1

あなたRelativeLayout

BringToFront()にを作成し、他のビュー SetEnabled(false)

2

アクティブ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. 
     } 
    }); 
5

私はこの同じ問題を抱えていた、そして最終的に代わり偽=クリック可能なようの後ろにすべてを設定する、私は単純にクリッカブル= にポップアップレイアウトを追加し、それを修正しました。ポップアップの背後にあるクリック可能なビューは、ポップアップからクリックイベントに応答しなくなりました。 :)そして、私はポップアップをダイアログに変更する必要はありませんでした。 :)

関連する問題