2016-03-27 29 views
0

我想在用戶滑動到下一個屏幕時開始淡入動畫,但我無法讓它正常工作。問題在於動畫在第一和第二屏幕上,第三和第四屏幕上同時開始。Android:如何在ViewPager中設置文本動畫

這是我的PageFragment;

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 

    Animation in; 
    Animation out; 

    in = new AlphaAnimation(0.0f, 1.0f); 
    in.setDuration(2000); 

    out = new AlphaAnimation(1.0f, 0.0f); 
    out.setDuration(2000); 

    // Inflate the layout for this fragment 
    View view = inflater.inflate(R.layout.page_fragment_layout,container,false); 
    textView = (TextView)view.findViewById(R.id.textView); 
    Bundle bundle = getArguments(); 
    String message = bundle.getString("count"); 
    textView.setText(message); 
    textView.setAnimation(in); 
    return view; 
}} 

SwipeAdapter

public class SwipeAdapter extends FragmentStatePagerAdapter{ 
public SwipeAdapter(FragmentManager fm) { 
    super(fm); 
} 

@Override 
public Fragment getItem(int i) { 
    String[] historia = {"1", "2", "3", "4", "5"}; 
    Fragment fragment = new PageFragment(); 
    Bundle bundle = new Bundle(); 
    bundle.putString("count", historia[i]); 
    fragment.setArguments(bundle); 
    return fragment; 
} 

@Override 
public int getCount() { 
    return 5; 
}} 

MainActivity

public class MainActivity extends FragmentActivity { 
ViewPager viewPager; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 


    viewPager = (ViewPager) findViewById(R.id.view_pager); 
    SwipeAdapter swipeAdapter = new SwipeAdapter(getSupportFragmentManager()); 
    viewPager.setAdapter(swipeAdapter); 

}} 

感謝任何有用的答案! :)

回答

0

註冊ViewPager.OnPageChangeListener與您的swipeAdapter(如在swipeAdapter.addOnPageChangeListener())。然後你可以將你的動畫材料移動到public void onPageSelected(int position)。不要忘記撥打onResume/onPause那些撥打/刪除聽衆)