2012-10-13 14 views
6

Ich habe ein relatives Layout Popup, das auf einen Klick auf die Schaltfläche zeigt. Ich habe einige andere Ansichten auf dem gleichen Bildschirm, und das Popup deckt sie ab. Aber wenn ich auf das Popup klicke, werden die Steuerelemente/Ansichten dahinter angeklickt. Wie kann ich das deaktivieren?So deaktivieren Sie Ansichten hinter relativen Layout Popup - Android

(Eine Lösung, die ich habe, ist, alle Ansichten zu erhalten und setClickable = false.)

Aber ich für eine andere Lösung suchen, wie Fokus auf der aktuellen Ansicht zu erhalten, so dass die anderen Ansichten deaktiviert eingestellt.

Antwort

2

Verwenden Dialog. Ich denke, das ist die beste Lösung für eine Popup-Anforderung.

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

Für das Ihr RelativeLayout-BringToFront()

und machen andere Ansichten hinter bekommen geklickt SetEnabled(false)

2

aktivieren setOnClickListener() an die RelativeLayout object.This fängt alle Klicks und verhindert Steuerung/Ansichten machen.

zB: -

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

Ich hatte das gleiche Problem, und schließlich statt von hinter als anklickbare = false, alles Einstellung ich einfach hinzugefügt klickbare = wahr zu das Popup-Layout und fixiert es. Die anklickbaren Ansichten hinter dem Popup reagieren nicht mehr auf Klickereignisse durch das Popup. :) Und ich musste nicht einmal mein Popup in einen Dialog umwandeln. :)

Verwandte Themen