我將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