Sto creando un'attività simile a una finestra di dialogo.Previene la "finestra di dialogo" Attività dall'interazione con l'attività in background quando si fa clic sui limiti esterni
Qui è lo stile:
<style name="TablesDialogActivity" parent="@android:style/Theme.Holo.Dialog">
<item name="android:windowBackground">@drawable/frame_background_left</item>
</style>
Qui è l'attività onCreate():
protected void onCreate(Bundle savedInstanceState) {
getWindow().setFlags(LayoutParams.FLAG_NOT_TOUCH_MODAL, LayoutParams.FLAG_NOT_TOUCH_MODAL);
getWindow().setFlags(LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH, LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH);
super.onCreate(savedInstanceState);
}
e anche all'interno l'attività tocco intercettore:
@Override
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_OUTSIDE) {
finish();
return true;
}
return false;
}
Funziona praticamente, l'attività termina al tocco al di fuori dei limiti del dialogo, ma interagisce anche con i pulsanti sull'attività di sfondo che è cattiva. La documentazione su onTouchEvent
dice che si dovrebbe restituire true se si è consumato l'evento di tocco. Ritorna vero, ma non sembra così.
http://stackoverflow.com/questions/4650246/how-to-cancel-an-dialog-themed-like-activity-when-touched-outside-the-window/5831214#5831214 è bene risposta) –
hai guardato il mio codice? se lo facessi sapresti che è preso da lì. –
Puoi trovare la mia soluzione a questo problema qui: http://stackoverflow.com/questions/16701915/can-we-interact-with-background-activity-when-displaying-a-dialog-over-it-in-and – user2288580