小编典典

Android 片段和动画

all

您应该如何实现例如 Honeycomb Gmail 客户端使用的那种滑动?

可以TransactionManager通过添加和删除片段来自动处理这个问题,由于模拟器是幻灯片,所以很难测试这个:)


阅读 94

收藏
2022-05-07

共1个答案

小编典典

要为片段之间的过渡设置动画,或者为显示或隐藏片段的过程设置动画,您可以使用Fragment Manager创建Fragment Transaction.

在每个片段事务中,您可以指定将分别用于显示和隐藏的进出动画(或在使用替换时同时使用两者)。

以下代码显示了如何通过滑出一个片段并将另一个片段滑入原位来替换片段。

FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.setCustomAnimations(R.anim.slide_in_left, R.anim.slide_out_right);

DetailsFragment newFragment = DetailsFragment.newInstance();

ft.replace(R.id.details_fragment_container, newFragment, "detailFragment");

// Start the animated transition.
ft.commit();

要通过隐藏或显示片段来实现相同的目的,您只需调用ft.showor ft.hide,分别传入您希望显示或隐藏的片段。

作为参考,XML 动画定义将使用该objectAnimator标记。slide_in_left 的示例可能如下所示:

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