12

我注意到,随着 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 可能使用哪个。

4

2 回答 2

0

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

于 2015-04-21T14:46:15.673 回答
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

于 2017-07-21T22:11:22.303 回答