汉堡菜单旋转到新活动的箭头

时间:2015-04-21 14:32:54

标签: android android-activity android-actionbar android-animation hamburger-menu

我注意到,随着Android的最新Gmail更新,当您点击其中一封电子邮件时,会打开一个新的活动(我假设它不是因为后退箭头而产生的碎片)。

然而,新活动的后退箭头不会像默认情况那样显示。主界面中的汉堡包菜单在动画中旋转为箭头(请参阅此处的视频:http://material-design.storage.googleapis.com/publish/material_v_3/material_ext_publish/0B3T7oTWa3HiFbFRfT196SWRyS2s/animation_delightfuldetails_wellcrafted.webm

(注意:新打开的电子邮件可能是一个片段,因为工具栏没有改变,默认的新活动动画也没有播放。我不确定它是哪一个。)

澄清:我知道如何让汉堡包菜单在按下/打开导航抽屉时变成箭头。事实上,我故意禁用所说的动画,因为它违反了规范。 (参见这篇文章:http://www.androidpolice.com/2014/10/30/google-turns-design-inconsistency-ten-latest-round-navigation-drawers/)。但是,我想知道,如果在创建新的片段/活动时可以使用相同的动画,无论Gmail使用哪一个。

2 个答案:

答案 0 :(得分:0)

如果您使用android.support.v7.app.ActionBarDrawerToggle,则会自动设置动画。

答案 1 :(得分:0)

为时已晚,但我将它放在这里以便即将提出的问题。 Gmail应用会在片段中打开电子邮件。因为您仍然可以在此页面中使用汉堡包菜单。将汉堡包菜单图标更改为后退按钮我使用此代码并且工作正常。

  public void setupToolbarNavigation() {
    toggle.setDrawerIndicatorEnabled(false);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    getSupportActionBar().setHomeButtonEnabled(true);
    toggle.setToolbarNavigationClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            onBackPressed();
            reverseToolbar();


        }
    });
}

 public void reverseToolbar() {
    getSupportActionBar().setDisplayHomeAsUpEnabled(false);
    getSupportActionBar().setHomeButtonEnabled(false);
    toggle.setDrawerIndicatorEnabled(true);
    toggle.setToolbarNavigationClickListener(null);
}

toggle是ActionBarDrawerToggle的一个实例,您可以在活动中使用此代码启动它

toggle = new ActionBarDrawerToggle(
            this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
    drawer.setDrawerListener(toggle);
    toggle.syncState();
当用户点击时,

reverseToolbar将工具栏返回图标更改为汉堡菜单图标。在您的活动中声明此方法并替换片段中的图标将此代码放入您的片段。 ((YourActivity)getActivity())。setupToolbarNavigation