アクティビティ間の遷移に使用すると魅力的な基本的なアニメーションがいくつかあります。
問題は、ビューフリッパーでそれらを使用すると、非常に顕著な遅延が見られることです。ここに私の活動からのコードスニペットがあります:
private void initUI(){
layoutInflater = LayoutInflater.from(this);
flipViewMain = layoutInflater.inflate(R.layout.flip_view_profile_main, null);
flipListHolder = layoutInflater.inflate(R.layout.flip_view_profile_list, null);
flipDescriptionHolder = layoutInflater.inflate(R.layout.flip_view_profile_description, null);
profileFlipper = (ViewFlipper) findViewById(R.id.profile_flipper);
profileFlipper.addView(flipViewMain);
profileFlipper.addView(flipListHolder);
profileFlipper.addView(flipDescriptionHolder);
flipInNextAnimation = AnimationUtils.loadAnimation(this, R.anim.push_left_in);
flipOutNextAnimation = AnimationUtils.loadAnimation(this, R.anim.push_left_out);
flipInPreviousAnimation = AnimationUtils.loadAnimation(this, R.anim.push_right_in);
flipOutPreviousAnimation = AnimationUtils.loadAnimation(this, R.anim.push_right_out);
}
private void handleFlip(int position){
if(position<currentPosition){
profileFlipper.setInAnimation(flipInPreviousAnimation);
profileFlipper.setOutAnimation(flipOutPreviousAnimation);
} else if(position>currentPosition){
profileFlipper.setInAnimation(flipInNextAnimation);
profileFlipper.setOutAnimation(flipOutNextAnimation);
}
currentPosition = position;
profileFlipper.setDisplayedChild(position);
}
すべてのアニメーションは次のようになります。
<translate android:fromXDelta="100%p" android:toXDelta="0" android:duration="300"/>
<alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="300" />
</set>
私は何を間違っていますか?このラグをなくすにはどうしたらよいでしょうか?ViewPager を使用したほうがよいのではないかと思いましたが、アニメーションの変更に関してはあまり柔軟ではないようです。ありがとう。