Wie kann ich die beseitigen, die Verzögerung, bevor eine LayoutTransition animation

Ich versuche die neue LayoutTransition Klasse in der Wabe. Ich habe eine animation, rutschen, ein View in Ort, wenn Sie es einem ViewGroup. Ich bemerkte, dass es eine leichte Verzögerung (um die 20ms) zwischen, wenn eine Ansicht zum ersten mal dargestellt wird und wenn die LayoutTransition.APPEARING animation beginnt. In anderen Worten, nach der Ansicht auf dem Bildschirm angezeigt wird, hängt er in der Luft für einen moment, und dann beginnt, Sie zu animieren, in den Ort. Sie können feststellen, diese auch in die ApiDemos Beispielprojekt. In der layout-animation Beispiele, es gibt immer eine Verzögerung, bevor eine ViewGroup's ERSCHEINEN animation startet. Ich habe sogar versucht die Einstellung der anderen LayoutTransition Animationen auf null, oder schließlich geben Sie sehr kurze Dauer, aber immer noch die APPEARING animation verzögert. Hier ist mein code:

public class DebugExampleFour extends Activity {
    private int numButtons = 1;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.debug_example_four);

        final ViewGroup frame = (ViewGroup) findViewById(R.id.frame_container);
        LayoutTransition transitioner = new LayoutTransition();

        Animator appearingAnimation = ObjectAnimator.ofFloat(null, "translationX", 600, 0);
        appearingAnimation.setDuration(45);
        appearingAnimation.setStartDelay(0);
        appearingAnimation.setInterpolator(new DecelerateInterpolator());
        appearingAnimation.addListener(new AnimatorListenerAdapter() {
            public void onAnimationEnd(Animator anim) {
                View view = (View) ((ObjectAnimator) anim).getTarget();
                view.setTranslationX(0f);
            }
        });
        transitioner.setAnimator(LayoutTransition.APPEARING, appearingAnimation);
        Animator dummyAnimation = ObjectAnimator.ofInt(0, 1);
        dummyAnimation.setDuration(1);
        dummyAnimation.setStartDelay(0);
        transitioner.setAnimator(LayoutTransition.CHANGE_APPEARING, dummyAnimation);
        transitioner.setAnimator(LayoutTransition.CHANGE_DISAPPEARING, dummyAnimation);
        transitioner.setAnimator(LayoutTransition.DISAPPEARING, dummyAnimation);

        frame.setLayoutTransition(transitioner);

        Button addButton = (Button) findViewById(R.id.addNewButton);
        addButton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                Button newButton = new Button(DebugExampleFour.this);
                newButton.setText("Click To Remove " + (numButtons++));
                newButton.setOnClickListener(new View.OnClickListener() {
                    public void onClick(View v) {
                        frame.removeView(v);
                    }
                });
                frame.addView(newButton, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));

            }
        });    
    }

}

Hier ist der layout-Datei, die einhergeht mit dem Beispiel:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" android:layout_height="match_parent"
    android:orientation="vertical">
    <Button android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:text="Add Button"
        android:id="@+id/addNewButton" />
    <LinearLayout android:orientation="vertical"
        android:layout_width="match_parent" android:layout_height="match_parent"
        android:id="@+id/frame_container" android:animateLayoutChanges="true" />
</LinearLayout>

Wie kann ich die beseitigen, die Verzögerung, bevor der APPEARING animation?

InformationsquelleAutor Tony Wong | 2011-03-07

Schreibe einen Kommentar