【问题标题】:Android fragments show exit animationAndroid片段显示退出动画
【发布时间】:2015-09-23 13:18:47
【问题描述】:

我必须创建一个包含大约 6 个片段的活动,一个重要的要求是片段在一个方向上动画并在它们进入的同一方向上向后动画,我已经能够找到一个可以为进入动画制作动画的解决方案,但退出动画永远不会运行,任何帮助都会有很大帮助!

活动

public class HomeFragmentActivity extends Activity {

Fragment fr;

Integer pagePosition;

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

    pagePosition = 0;

}


public void categoryNavClick(View view) {


        fr = new FragmentOne();

        FragmentManager fm = getFragmentManager();
        FragmentTransaction fragmentTransaction = fm.beginTransaction();
        fragmentTransaction.setCustomAnimations(R.anim.enter_right_anim, R.anim.enter_right_anim);
        fragmentTransaction.replace(R.id.frHomeFragment, fr);
        fragmentTransaction.commit();

        pagePosition = 0;



}

public void homeNavClick(View view) {

        fr = new FragmentTwo();

        FragmentManager fm = getFragmentManager();
        FragmentTransaction fragmentTransaction = fm.beginTransaction();
        fragmentTransaction.setCustomAnimations(R.anim.enter_right_anim, R.anim.exit_right_anim);
        fragmentTransaction.replace(R.id.frHomeFragment, fr);
        fragmentTransaction.commit();

        pagePosition = 1;

}

}

enter_right_anim.xml

<?xml version="1.0" encoding="utf-8"?>
<set>
<objectAnimator
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="1000"
    android:propertyName="x"
    android:valueFrom="0"
    android:valueTo="-2000"
    android:valueType="floatType" />
</set>

exit_right_anim.xml

<?xml version="1.0" encoding="utf-8"?>
<set>
<objectAnimator
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="1000"
    android:propertyName="x"
    android:valueFrom="2000"
    android:valueTo="0"
    android:valueType="floatType" />
</set>

【问题讨论】:

  • 您是否考虑过使用视图分页器和选项卡布局,两者都是应用程序兼容库的一部分,为您完成许多繁重的工作,包括动画片段和滑动片段,也可以向后移植到较旧的安卓版本。
  • 不幸的是,当从一个视图移动到下一个视图时,其他视图无法显示,客户想要的是类似于 instagram 在其应用上所做的导航

标签: java android android-layout android-fragments fragmentmanager


【解决方案1】:

你在设置的自定义动画中进入和退出的动画是一样的

尝试在片段的输入中也添加一个偏移量,然后它只会在第一个离开后出现,就像你所说的要求一样 “从一个视图移动到下一个视图时,其他视图无法显示,这是客户想要的”


更新

退出视图在进入视图的画布上进行动画处理,因此您可以像创建动画一样创建动画,但是进入动画会尝试放置

android:startOffset="1000"

一千个偏移,因为它的 1 秒动画到另一个片段消失

另一件事是这一行

fragmentTransaction.setCustomAnimations(R.anim.enter_right_anim, R.anim.enter_right_anim);

进出动画是一样的

【讨论】:

  • 这是我第一次不得不创建这种类型的布局,所以我对答案有点困惑,你能展示一个基本的代码示例吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-02
  • 1970-01-01
  • 1970-01-01
  • 2011-06-16
  • 1970-01-01
相关资源
最近更新 更多