为什么我的一项活动的过渡不同?

Coo*_*ter 1 android android-transitions

我正在使用 android,这会出现在我测试过的每个版本的所有设备、模拟器和物理设备上。除了从任何地方转到主屏幕时,从屏幕到屏幕的转换都是相同的。这是片段代码。

public class NavBarFragment extends Fragment implements View.OnClickListener{

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

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

        Button homeButton = (Button) v.findViewById(R.id.homeButton);
        Button vaultButton = (Button) v.findViewById(R.id.vaultButton);
        Button shopButton = (Button) v.findViewById(R.id.shopButton);
        Button accInfoButton = (Button) v.findViewById(R.id.accInfoButton);

        homeButton.setOnClickListener(this);
        vaultButton.setOnClickListener(this);
        shopButton.setOnClickListener(this);
        accInfoButton.setOnClickListener(this);

        return v;
    }


    @Override
    public void onClick(View v) {
        Intent intent = null;
        switch (v.getId()) {

            case R.id.homeButton:
                intent = new Intent(getActivity(), TasksScreenActivity.class);
                break;

            case R.id.vaultButton:
                intent = new Intent(getActivity(), ChestActivity.class);
                break;

            case R.id.shopButton:
                intent = new Intent(getActivity(), ShopActivity.class);
                break;

            case R.id.accInfoButton:
                intent = new Intent(getActivity(), AccountActivity.class);
                break;

            default:
                System.err.println("Error onClick in NavBarFragment");
                break;
        }
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
//        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//        intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
        startActivity(intent);
    }
}
Run Code Online (Sandbox Code Playgroud)

这是清单的相关部分

<activity android:name=".TasksScreenActivity"
    android:launchMode="singleTask">
</activity>

<activity android:name=".ChestActivity"
    android:launchMode="singleTask">
</activity>

<activity android:name=".ShopActivity"
    android:launchMode="singleTask">
</activity>

<activity android:name=".AccountActivity"
    android:launchMode="singleTask">
</activity>
Run Code Online (Sandbox Code Playgroud)

据我所知,我对所有这些都做同样的事情,应该是一致的。对于所有其他屏幕,动画显示像弹出一样淡入,而对于主页,它显示像缩小到中间然后消失一样淡出。

我的问题是,它们不一致,只要它们都相同,我不在乎最终过渡是什么。

小智 5

Intent intent = new Intent(activity, clazz);
activity.startActivity(intent);
activity.overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
Run Code Online (Sandbox Code Playgroud)

使用 overridePendingTransition 为所有新的查看活动设置过渡