如何在工具栏上执行动画?

时间:2017-01-10 07:13:40

标签: android android-animation toolbar

我有两个片段,我还在主活动中添加了一个工具栏,其中包含这些片段的容器。我正在做的是我正在应用动画,以便一个片段被另一个片段替换。

我还有一个隐藏在第一个片段中的工具栏,但显示在第二个片段中。动画工作正常,但我不明白如何在工具栏中使用相同的动画,以便工具栏看起来是第二个片段的一部分。

这是我的主要活动代码。

public class MainActivity extends AppCompatActivity {

RelativeLayout relativeLayout;
FragmentManager fragmentManager;
FragmentTransaction fragmentTransaction;
Toolbar toolbar;

@Override

protected void onCreate(Bundle savedInstanceState) {

   // setTheme(R.style.AppTheme);
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

   /* actionBar = getSupportActionBar();
    actionBar.setDisplayShowHomeEnabled(true);
    actionBar.setIcon(R.drawable.logohome);
    actionBar.setDisplayShowTitleEnabled(false);
    actionBar.hide();*/

   toolbar = (Toolbar) findViewById(R.id.my_toolbar);

    setSupportActionBar(toolbar);
    toolbar.setLogo(R.drawable.logohome);
    getSupportActionBar().setDisplayShowTitleEnabled(false);


    relativeLayout = (RelativeLayout) findViewById(R.id.main_container);

    fragmentManager = getSupportFragmentManager();
    //fragmentManager.beginTransaction().add(R.id.main_container, new Splash(), null).commit();

    fragmentTransaction = fragmentManager.beginTransaction();
    fragmentTransaction.add(R.id.main_container, new Splash());
    fragmentTransaction.commit();
}

@Override
protected void onResume() {
    super.onResume();

    Handler handler = new Handler();
    handler.postDelayed(new Runnable() {
        @Override
        public void run() {


            fragmentManager.beginTransaction().
                    setCustomAnimations(R.anim.transition, R.anim.splashanimation).
                    add(R.id.main_container, new Login() ).commit();
            //fragmentTransaction.commit();


        }
    },3000);


}
}

1 个答案:

答案 0 :(得分:0)

工具栏也是一个可以使用toolbar.setAnimation(inFromRightAnimation());

的视图
 public Animation inFromRightAnimation()
    {
        Animation inFromRight = new TranslateAnimation(
                Animation.RELATIVE_TO_PARENT, +1.0f,
                Animation.RELATIVE_TO_PARENT, 0.0f,
                Animation.RELATIVE_TO_PARENT, 0.0f,
                Animation.RELATIVE_TO_PARENT, 0.0f);
        inFromRight.setDuration(240);
        inFromRight.setInterpolator(new AccelerateInterpolator());
        return inFromRight;
    } 

这显示它从下一个屏幕加载