java - 抽屉导航动画,drawerOpen被调用两次

标签 java android navigation-drawer

我正在尝试在我的一个 View 上打开的抽屉导航上运行动画,以下是我的代码:

public void onDrawerOpened(View drawerView) {
                getActionBar().setTitle(mDrawerTitle);
                System.out.println("Called");

                ObjectAnimator animation = ObjectAnimator.ofInt(pw, "progress", 200); 
                animation.setDuration(1000);
                animation.setInterpolator(new DecelerateInterpolator());
                animation.start();
                //      mDrawerList.setLayoutAnimation(getMaximAnim());

                invalidateOptionsMenu();
            }
        };

每当我打开抽屉时,控制台都会打印两次 Called ,这意味着动画会发生两次,并且会以这种方式抖动。我只想为 View 设置一次动画,我哪里出错了,有什么提示吗?

这是我的抽屉幻灯片代码:

public void onDrawerSlide(View drawerView, float slideOffset) {
            if(slideOffset > .55 && !drawerOpen){
                onDrawerOpened(drawerView);
                drawerOpen = true;
            } else if(slideOffset < .45 && drawerOpen) {
                onDrawerClosed(drawerView);
                drawerOpen = false;
            }
        } 

我引用了here

最佳答案

你不需要

onDrawerOpened(drawerView);

在你的 onDrawerSlide 中。它是由 Android 本身调用的。至于更改标题,请看这个:

public void restoreActionBar(){
ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
actionBar.setDisplayShowTitleEnabled(true);
actionBar.setTitle(mTitle);
}

并将 mTitle 设置为您在代码的另一部分中喜欢的任何字符串。

关于java - 抽屉导航动画,drawerOpen被调用两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27647075/

相关文章:

java - 抽屉导航应用程序在单击时不会更改 fragment

java - 抽屉导航中的 onClick 事件不起作用

java - 谷歌探戈 : How is the point cloud confidence data can be used

android - 无法解析方法 getApplication()

android - 如何从 Fragment 类中的 AsyncTask 类的 onPostExecute 函数中删除 fragment

Android:直接在material-calendarview中更改年份

Android获取设备方向

java - 发布墙帖时出错 VKontakte、VK-SDK

java - 如何在循环内另外迭代 for(String s : st) in java?

java - 使用 ContentCachingRequestWrapper 会导致空参数映射