【问题标题】:getActionBar().setHomeAsUpIndicator() Breaking Navigation Drawer "Hamburger" AnimationgetActionBar().setHomeAsUpIndicator() 打破导航抽屉“汉堡”动画
【发布时间】:2015-08-11 15:41:00
【问题描述】:

在我的应用程序中,我使用的是导航抽屉。我给导航抽屉中的每个项目一个不同的图标来打开导航抽屉。

当我最初启动应用程序时,第一个片段的抽屉图标像正常一样动画。但是当我单击另一个导航抽屉项目时,动画会中断。

在我的 MainActivity 中,我有这段代码用于切换导航抽屉:

    getActionBar().setDisplayHomeAsUpEnabled(true);
    getActionBar().setHomeButtonEnabled(true);

    mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
            R.drawable.ab_mytasks, R.string.drawer_open,
            R.string.drawer_close) {
        public void onDrawerClosed(View view) {
            getActionBar().setTitle(mTitle);
            invalidateOptionsMenu(); // creates call to
            // onPrepareOptionsMenu()
        }

        public void onDrawerOpened(View drawerView) {
            getActionBar().setTitle(mDrawerTitle);
            invalidateOptionsMenu(); // creates call to
            // onPrepareOptionsMenu()
        }
    };
    mDrawerLayout.setDrawerListener(mDrawerToggle);
    mDrawerToggle.syncState();

然后在我的每个片段中,我都有设置自定义图标的代码:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setHasOptionsMenu(true);
    final ActionBar actionBar = getActivity().getActionBar();
    actionBar.setDisplayShowTitleEnabled(false);
    actionBar.setHomeAsUpIndicator(R.drawable.ab_mytasks);

}

我尝试将与 MainActivity 中相同的 mDrawerToggle 方法放入我的片段中。但是当我使用 getActivity().invalidateOptionsMenu() 时应用程序崩溃了。

这是我的问题的图像表示:

1 = Animation works as normal
2 = Selected another fragment from Nav Drawer
3 = Original Fragment icon animation is broken

【问题讨论】:

    标签: android android-fragments navigation android-actionbar navigation-drawer


    【解决方案1】:

    当您更改图标 (setHomeAsUpIndicator) 时,您将不再获得动画。

    【讨论】:

    • 感谢您的回复。这样就可以解释了。有没有办法解决这个问题?
    • 我不确定您将如何包含动画,但您必须手动设计自己的动画。该特定动画包含在 Lollipop 中,但当您给它一个外来图标时,它不仅会生成动画。
    猜你喜欢
    • 2022-08-15
    • 1970-01-01
    • 2016-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-24
    相关资源
    最近更新 更多