Ich habe ein DialogFragment, das einige Animationen einiger Layouts in seiner Ansicht hat. Wenn ich das Dialogfeld verwerfe, möchte ich eine Animation ausführen und wenn die Animation beendet ist, führen Sie die Abweisung aus.DialogFragment Animation des Layouts und "Versuch, das Fenster beim Zeichnen zu zerstören!" Fehler
Schritt 1: Rufen Sie das Fragment aus meiner Tätigkeit:
myDialog.show(getSupportFragmentManager(), "");
Schritt 2: Nachdem der Benutzer den Job mit dem Dialog beendet hatte, er drückt einen Knopf. Die Schaltfläche ruft eine Animation und danach möchte ich den Dialog verschwinden:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View layout = inflater.inflate(R.layout.my_layout, null);
layMain = (LinearLayout) layout.findViewById(R.id.layMain);
TextView btnCancel = (TextView) layout.findViewById(R.id.btnCancel);
btnCancel.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
final Animation anim = AnimationUtils.loadAnimation(getActivity(), R.anim.translate_to_bottom);
anim.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationRepeat(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
dismiss();
}
});
layMain.startAnimation(anim);
}
});
.....
Wenn die Animationen endet, wird der Dialog geschlossen, aber ich erhalte diesen Fehler auf logcat
E/ViewRootImpl (25507) : Versuch, das Fenster beim Zeichnen zu zerstören! E/ViewRootImpl (25507): [email protected], title = com.mypackage/com.mypackage.MyActivity
Wie kann ich das verhindern?
Später bearbeiten: Wenn ich es ohne Animation verwende, funktioniert alles gut und es wird kein Fehler auf logcat angezeigt. Ich nehme an, dass es etwas mit der Animation zu tun hat.
Die Animation Ich verwende:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false" >
<translate
android:duration="@android:integer/config_mediumAnimTime"
android:fromYDelta="0%p"
android:interpolator="@android:anim/accelerate_interpolator"
android:toYDelta="80%p" />
</set>
das bedeutet, dass Ihr Dialog nicht verschwunden ist ?? –
Der Dialog verschwindet als normale Erwartung.So verhält sich alles normal, bis auf die Fehlermeldung, die nichts Gutes bedeuten kann. – Alin
Das liegt daran, dass Sie das getSupportFragmentManager() als Kontextobjekt übergeben haben ... statt dessen haben Sie getActivity() ... übergeben. –