我尝试在两个布局之间设置自定义动画。

public class MainActivity extends FragmentActivity {

    View menu = null;
    ViewGroup parent = null;

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

        //initialize the container and his parent
        menu = findViewById(R.id.menu_model);
        parent = (ViewGroup) menu.getParent();

        //set transition
        LayoutTransition lt = new LayoutTransition();
        lt.enableTransitionType(LayoutTransition.CHANGING);
        parent.setLayoutTransition(lt);

        restoreMenu(null);
    }

    //display second menu
    public void changeMenu(View view) {

        int index = parent.indexOfChild(menu);
        View old = menu;
        menu = getLayoutInflater().inflate(R.layout.menu_2, parent, false);
        parent.addView(menu, index);
        parent.removeView(old);
    }

    //display first menu
    public void restoreMenu(View view) {

        int index = parent.indexOfChild(menu);
        View old = menu;
        menu = getLayoutInflater().inflate(R.layout.menu_1, parent, false);
        parent.addView(menu, index);
        parent.removeView(old);
    }
}

正如你所看到的,我使用的是带有LayoutTransition效果的LayoutTransition.CHANGING
但我希望它看起来像这样:
我的旧菜单在左边,新菜单在右边。
你知道我怎么做吗?LayoutTransition能做到吗?

最佳答案

使用TranslateAnimation定义滑入和滑出动画,然后使用

overridePendingTransition(int enterAnim, int exitAnim)

这个http://developer.android.com/reference/android/app/Activity.html#overridePendingTransition(int,int)

关于android - LayoutTransition自定义过渡,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17854708/

10-10 22:34