小编Moi*_*nty的帖子

android 延迟片段转换

基本上我有一个具有单个 Activity 和 5 个片段的应用程序。由于创建片段布局需要一秒钟的时间,因此我更改了方法,使其不重新创建片段,而只是隐藏和显示它们。

private void openFragment(int index)
{
    if(index == activeFragment)
    {
        return;
    }

    FragmentTransaction ft = getSupportFragmentManager().beginTransaction();

    //Set animations
    if(activeFragment < index)
    {
        ft.setCustomAnimations(R.anim.slide_in_right, R.anim.slide_out_left);
    } else {
        ft.setCustomAnimations(R.anim.slide_in_left, R.anim.slide_out_right);
    }

    //Hide old Fragment
    if (Fragments.get(activeFragment).isAdded())
    {
        ft.hide(Fragments.get(activeFragment));
        Fragments.get(activeFragment).getView().setTranslationZ(0);
    }

    //Add/Show new Fragment
    if (Fragments.get(index).isAdded()) 
    { // if the fragment is already in container
        ft.show(Fragments.get(index));
        Fragments.get(index).getView().setTranslationZ(1f);
    } else { // fragment needs to be added to frame container
        ft.add(R.id.fragment_container, Fragments.get(index), Integer.toString(index));
    }

    // Commit changes
    ft.commit();
} …
Run Code Online (Sandbox Code Playgroud)

java animation android android-fragments

5
推荐指数
0
解决办法
1968
查看次数

标签 统计

android ×1

android-fragments ×1

animation ×1

java ×1