Android:在片段完全加载后启动动画

Android:在片段完全加载后启动动画,android,animation,android-fragments,Android,Animation,Android Fragments,我有一个片段有一个textView fadein的动画。动画必须在一段时间延迟后开始,比如加载片段后2秒。我为此写了一个代码。但动画部分已完成,然后渲染视图。如何加载片段并在延迟一段时间后启动动画 我的代码如下:注意:该类扩展了片段 Animation animFadein; MenuClickHelper mClickHelper; TextView tv; @Override public View onCreateView(LayoutInflater inflater, ViewGro

我有一个片段有一个textView fadein的动画。动画必须在一段时间延迟后开始,比如加载片段后2秒。我为此写了一个代码。但动画部分已完成,然后渲染视图。如何加载片段并在延迟一段时间后启动动画

我的代码如下:注意:该类扩展了片段

Animation animFadein;
MenuClickHelper mClickHelper;
TextView tv;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    final View rootView = inflater.inflate(R.layout.fragment_main_menu,
            container, false);

    mClickHelper = new MenuClickHelper(rootView, getFragmentManager());

    tv = (TextView) rootView.findViewById(R.id.tvPresentation);
    animFadein = AnimationUtils.loadAnimation(getActivity()
            .getApplicationContext(), R.anim.fade_in);

    animFadein.setAnimationListener(new AnimationListener() {

        @Override
        public void onAnimationStart(Animation animation) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onAnimationRepeat(Animation animation) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onAnimationEnd(Animation animation) {
            if (animation == animFadein) {
                Toast.makeText(getActivity().getApplicationContext(),
                        "Animation Stopped", Toast.LENGTH_SHORT).show();
            }
        }
    });

    try {
        Thread.sleep(2000);
        tv.startAnimation(animFadein);
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return rootView;
}
Thread.sleep(2000)不要使用sleep方法阻塞main,您可以使用Handler类并使用postdelay延迟动画:

示例:

更改此项:

 try {
    Thread.sleep(2000);
    tv.startAnimation(animFadein);
} catch (InterruptedException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}


您可以通过以下方法获得相同的结果:

android:startOffset="2000"

在您的XML动画集文件中。

您有什么完美的解决方案吗?
android:startOffset="2000"