2012-10-13 18 views
6

Ho un popup di layout relativo che mostra su un clic del pulsante. Ho altre viste sullo stesso schermo e il popup le copre. Ma quando clicco sul popup, i controlli/le viste dietro vengono fatti fare clic. Come disabilitare questo?come disattivare le viste dietro popup relativo layout - android

(Una soluzione che ho è di ottenere tutti i punti di vista e le setClickable = false.)

ma sono alla ricerca di qualche altra soluzione, come per ottenere attenzione per la vista corrente in modo che le altre viste sono impostati disabilitato.

risposta

2

Usa finestra di dialogo. Penso che questa sia la soluzione migliore per un requisito di pop-up.

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

Per questo rendere i RelativeLayout a BringToFront()

e fare altre viste SetEnabled(false)

2

Attiva setOnClickListener() per la RelativeLayout object.This cattura tutti i clic e impedisce il controllo/vista dietro ottenere cliccato.

ad esempio: -

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

Ho avuto questo stesso problema, e, infine, invece di impostare tutto dietro come cliccabile = false, ho semplicemente aggiunto cliccabile = vero al il popup di layout e riparato. Le visualizzazioni selezionabili dietro il popup non rispondono più agli eventi click attraverso il popup. :) E non ho nemmeno dovuto cambiare il mio popup in una finestra di dialogo. :)

Problemi correlati