我将ViewPager与FragmentStatePagerAdapter一起使用,并且我想在片段可见并且只有可见时才在片段中启动动画。 的问题是,当这个片段谁是目前被用户看到一前一后的一个动画开始。 我感动从“onActivityCreated”片段功能的动画代码为“在onStart”片段的功能,甚至到“的onResume”片段的功能,但同样的事情发生。在ViewPager上可见片段时启动动画
基本上我需要等待片段是由用户看到推出一些代码的页面。我怎样才能做到这一点?
在此先感谢。
我将ViewPager与FragmentStatePagerAdapter一起使用,并且我想在片段可见并且只有可见时才在片段中启动动画。 的问题是,当这个片段谁是目前被用户看到一前一后的一个动画开始。 我感动从“onActivityCreated”片段功能的动画代码为“在onStart”片段的功能,甚至到“的onResume”片段的功能,但同样的事情发生。在ViewPager上可见片段时启动动画
基本上我需要等待片段是由用户看到推出一些代码的页面。我怎样才能做到这一点?
在此先感谢。
我做到了。
CustomOnPageChangeListener page_listener = new CustomOnPageChangeListener();
view_pager.setOnPageChangeListener(page_listener);
...
private static class CustomOnPageChangeListener extends SimpleOnPageChangeListener
{
@Override
public void onPageSelected(int position)
{
if (position == fragment_position)
{
MyFragment fragment = (MyFragment) fragment_pager_adapter.instantiateItem(view_pager, fragment_position);
fragment.startAnimation();
}
super.onPageSelected(position);
}
}
,当然,你必须写一个startAnimation()功能启动动画到MyFragment代码。
您是否尝试过使用下列内容:
@Override
public void onWindowFocusChanged (boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (hasFocus)
myTextView.startAnimation(anim);
}
使用此。完美地为FragmentStatePagerAdapter工作。
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser) {
// TODO
}
}
弄得有点...所以动画起步早?动画片段被调用之前? – jnthnjns 2012-07-26 16:00:07
是的动画开始得太早。只要在屏幕上看到包含动画的前一页,动画就会开始。 – thomaus 2012-07-26 16:09:18