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

Posted

技术标签:

【中文标题】汉堡菜单旋转到新活动的箭头【英文标题】:Hamburger menu spin to arrow on new activity 【发布时间】:2015-06-28 19:01:41 【问题描述】:

我注意到,随着 android 版 Gmail 的最新更新,当您点击其中一封电子邮件时,会打开一个新的 Activity(由于返回箭头,我假设它不是一个片段)。

然而,新活动的后退箭头并不仅仅像默认情况下那样显示。 主界面中的汉堡菜单在动画中旋转成箭头(请参阅此处的视频: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 可能使用哪个。

【问题讨论】:

在我看来,GMail 正在使用片段。在这里您可以找到带有旋转箭头的菜单抽屉模板:github.com/kanytu/android-material-drawer-template。 【参考方案1】:

如果您使用android.support.v7.app.ActionBarDrawerToggle,它会自动生成动画。

【讨论】:

是的,我知道它会自动动画,至少在您拉开导航抽屉时是这样。但是我想知道当我创建一个新的活动/片段时是否可以触发动画 有关于这个问题的消息吗?似乎找不到其他任何东西【参考方案2】:

为时已晚,但我将其放在这里以备后续问题。 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

【讨论】:

以上是关于汉堡菜单旋转到新活动的箭头的主要内容,如果未能解决你的问题,请参考以下文章

侧边栏下拉时箭头的旋转动画(treeView控件)

旋转 UIBarButtonItem Swift

CDR如何旋转文字标准角度?

Burgermenu:CSS 中的动画(“两”行的旋转和变换)

Vue 过渡到弹出菜单

csharp Unity C#片段用于将变换旋转到新的相对旋转数秒