Transition animator在Activity中工作,但不在片段中工作

时间:2015-12-22 21:43:26

标签: android animation fragment transition animator

我一直在尝试关注android flip card tutorial。按照指示,我创建了四个自定义动画集

card_flip_right_in.xml:

<set xmlns:android="http://schemas.android.com/apk/res/android">
<objectAnimator
    android:valueFrom="1.0"
    android:valueTo="0.0"
    android:propertyName="alpha"
    android:duration="0" />

<objectAnimator
    android:valueFrom="180"
    android:valueTo="0"
    android:propertyName="rotationY"
    android:interpolator="@android:interpolator/accelerate_decelerate"
    android:duration="300" />

<objectAnimator
    android:valueFrom="0.0"
    android:valueTo="1.0"
    android:propertyName="alpha"
    android:startOffset="150"
    android:duration="1" />
</set>

card_flip_right_out.xml:

<set xmlns:android="http://schemas.android.com/apk/res/android">
<objectAnimator
    android:valueFrom="0"
    android:valueTo="-180"
    android:propertyName="rotationY"
    android:interpolator="@android:interpolator/accelerate_decelerate"
    android:duration="300" />

<objectAnimator
    android:valueFrom="1.0"
    android:valueTo="0.0"
    android:propertyName="alpha"
    android:startOffset="150"
    android:duration="1" />
</set>

card_flip_left_in.xml:

<set xmlns:android="http://schemas.android.com/apk/res/android">

<objectAnimator
    android:valueFrom="1.0"
    android:valueTo="0.0"
    android:propertyName="alpha"
    android:duration="0" />

<objectAnimator
    android:valueFrom="-180"
    android:valueTo="0"
    android:propertyName="rotationY"
    android:interpolator="@android:interpolator/accelerate_decelerate"
    android:duration="300" />

<objectAnimator
    android:valueFrom="0.0"
    android:valueTo="1.0"
    android:propertyName="alpha"
    android:startOffset="150"
    android:duration="1" />
</set>

card_flip_left_out.xml:

<set xmlns:android="http://schemas.android.com/apk/res/android">
<objectAnimator
    android:valueFrom="0"
    android:valueTo="180"
    android:propertyName="rotationY"
    android:interpolator="@android:interpolator/accelerate_decelerate"
    android:duration="300" />

<objectAnimator
    android:valueFrom="1.0"
    android:valueTo="0.0"
    android:propertyName="alpha"
    android:startOffset="150"
    android:duration="1" />
</set>

而且,我的片段中有这个:

public class ContestantInfoFragment extends Fragment {

    private Context context;

    private String cName, cCountry, cDesc;

    private TextView contestant_name, contestant_country, contestant_desc;
    private ImageButton flip_btn;

    public ContestantInfoFragment() {
    }

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

        View v = inflater.inflate(R.layout.fragment_contestant_info, container, false);

        context = inflater.getContext();

        Bundle bundle = this.getArguments();
        if(bundle != null) {
            cName = bundle.getString("NAME", "Problem loading contestant's name");
            cCountry = bundle.getString("COUNTRY", "Problem loading contestant's country");
            cDesc = bundle.getString("DESC", "Problem loading contestant's description");

            contestant_name = (TextView) v.findViewById(R.id.contestant_name);
            contestant_country = (TextView) v.findViewById(R.id.contestant_country);
            contestant_desc = (TextView) v.findViewById(R.id.contestant_desc);

            contestant_name.setText(cName);
            contestant_country.setText(cCountry);
            contestant_desc.setText(cDesc);
        }

        flip_btn = (ImageButton) v.findViewById(R.id.contestant_flip_btn);
        flip_btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                getActivity().getSupportFragmentManager()
                        .beginTransaction()
                        .setCustomAnimations(R.animator.card_flip_right_in, R.animator.card_flip_right_out,
                                             R.animator.card_flip_left_in, R.animator.card_flip_left_out)
                        .replace(R.id.mainContent, new ContestantsFragment())
                                        .addToBackStack(null)
                                        .commit();
            }
        });

        return v;
    }
}

但是,我有使用

的语法错误(红色拉链线)
.setCustomAnimations(R.animator.card_flip_right_in, R.animator.card_flip_right_out,
                                         R.animator.card_flip_left_in, R.animator.card_flip_left_out)

我得到的反馈是“anim资源类型anim” 我确实意识到如果我在一个活动中做了,错误警告会消失,但是当我在一个片段中实现时。 任何人都知道为什么这不起作用?我如何让它在片段中工作?

0 个答案:

没有答案