Ich erstelle eine Aktivität, die wie ein Dialog aussieht. HierVerhindern, dass "Dialog" -Aktivität mit der Hintergrundaktivität beim Klicken auf äußere Grenzen interagiert
ist der Stil:
<style name="TablesDialogActivity" parent="@android:style/Theme.Holo.Dialog">
<item name="android:windowBackground">@drawable/frame_background_left</item>
</style>
Hier ist die Aktivität 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);
}
Und auch im Inneren der Aktivität Touch Interceptor:
@Override
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_OUTSIDE) {
finish();
return true;
}
return false;
}
Es funktioniert ziemlich gut, Aktivität endet bei Berührung außerhalb von Dialoggrenzen, aber es interagiert auch mit Schaltflächen auf der Hintergrundaktivität, die schlecht ist. Dokumentation auf der onTouchEvent
besagt, dass Sie True zurückgeben sollten, wenn Sie das Berührungsereignis konsumiert haben. Ich komme zurück, aber so scheint es nicht.
http://stackoverflow.com/questions/4650246/how-to-ancancel-anddialog-themed-like-activity-when-touched-outs-the-window/5831214#5831214 es ist eine gute Antwort) –
hast du meinen code angeschaut? Wenn du es würdest, wüsstest du, dass es von dort stammt. –
Hier finden Sie meine Lösung für dieses Problem: http://stackoverflow.com/questions/16701915/can-we-interact-with-background-activity-when-displaying-a-dialog-over-it-in-and-and- – user2288580