我使用setDisplayHomeAsUpEnabled来显示箭头,而不是抽屉中的“汉堡”图标,但它没有得到动画或任何东西。相反,它显示了可即时绘制的箭头。
主屏幕:(专辑1)
当您点击电影时:(专辑2)
问题是,当我滑动抽屉时,图标的动画效果很好,这让我觉得也许我不应该使用SetDisplayHomeAsupaned来实现这一点:(相册3)
专辑:http://imgur.com/a/LkXbh
这是我的抽屉切换代码:
Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar);
setSupportActionBar(toolbar);
drawerAdapter = new DrawerAdapter(this, App.getNavItems(), getSupportFragmentManager());
drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
drawerList = (ExpandableListView) findViewById(R.id.left_drawer);
// Set onGroupClick and onChildClick
drawerAdapter.setClickEvents(MainActivity.this, drawerLayout, drawerList);
drawerList.setAdapter(drawerAdapter);
ActionBarDrawerToggle toolbarDrawerToggle = new ActionBarDrawerToggle(
this,
drawerLayout,
toolbar,
R.string.drawer_open,
R.string.drawer_close
) {
public void onDrawerClosed(View view) {
super.onDrawerClosed(view);
invalidateOptionsMenu();
}
public void onDrawerOpened(View view) {
super.onDrawerOpened(view);
invalidateOptionsMenu();
}
};
drawerLayout.setDrawerListener(toolbarDrawerToggle);
toolbarDrawerToggle.syncState();
编辑:我希望动画不是在打开抽屉时,那已经可以工作了。我想在加载特定片段时手动触发动画。我可能没有正确地解释自己。
听起来它像预期的那样工作,您可以使用setDisplayHomeAsUpEnabled来简单地启用home按钮作为后退按钮,没有动画。
如果您正在使用抽屉菜单并且想要动画,请不要使用setDisplayHomeAsUpEngic
并且对于材质主题(至少在AppCompat v21中),请确保使用v7包中的ActionBarDrawerTougle
。
游戏商店就是一个很好的例子。在顶层,你有一个活动,其中有一个导航抽屉和一个汉堡包,当你打开抽屉时,汉堡包会产生动画。如果你点击一个应用程序,它会打开一个带有后退箭头的新活动。
自从提出这个问题以来,已经有了一种替代方法。动画箭头由现在的公共类DrawarRowDrawable实现,该类实现了Drawable。
在代码中,按如下方式设置导航图标:
DrawerArrowDrawable drawerArrow = new DrawerArrowDrawable(this);
drawerArrow.setColor(myColor);
toolbar.setNavigationIcon(drawerArrow);
在BackbackChangedListener上注册一个并手动设置箭头的动画:
@Override
public void onBackStackChanged() {
boolean drawer = getSupportFragmentManager().getBackStackEntryCount() == 0;
ObjectAnimator.ofFloat(drawerArrow, "progress", drawer ? 0 : 1).start();
}
我还没有对此进行测试,但您可以通过在0(抽屉闭合)和1(抽屉打开)之间设置浮点动画,然后将值传递到ActionBarDrawerToggle来实现这一点。onDrawerSlide(视图,浮点)。我相信这就是切换如何决定动画切换应该处于什么状态。
像这样的事情应该管用。
ValueAnimator anim = ValueAnimator.ofFloat(start, end);
anim.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator valueAnimator) {
float slideOffset = (Float) valueAnimator.getAnimatedValue();
toolbarDrawerToggle.onDrawerSlide(drawerLayout, slideOffset);
}
});
anim.setInterpolator(new DecelerateInterpolator());
// You can change this duration to more closely match that of the default animation.
anim.setDuration(500);
anim.start();
我正在使用新的来进行侧导航。我使用抽屉图标(“汉堡包”)如下所示: 但是,当我将添加到backstack时,我想再次显示back箭头,这样用户就可以导航回“home”,然后才打开应用程序抽屉。 如何将抽屉图标重置为后退图标? 所需的箭头:
我是android新手。我有一个关于Android导航抽屉的问题。我在我的应用程序中加入了导航抽屉,一切都很顺利,但我想知道是否有人能帮我在导航抽屉列表中获得惰性动画。 图像的来源。 非常感谢。
我正在为我的应用程序实现一个导航抽屉。现在,除了一个小故障外,它工作正常。当我设置导航抽屉图标(ic_Drawer)来替换常规的“HomeAsUp”插入符号图标时,我仍然得到箭头。导航抽屉图标不显示。我已经实现了android开发者网站上的每一种方法。但它似乎不起作用。 以下是我的代码:
问题内容: 我是新手,并且使用Java swing设计接口。我希望抽屉在单击按钮时以滑动动画拉出。首先,是否可以这样做,如果可以,我该怎么做。谢谢。对于某些特定的方法信息,我将不胜感激。 问题答案: 根据要实现的目标,您可以采用多种可能的方法。 基本方法是简单地绘制图形和摆动 这样您就可以简单地更新一个变量,该变量将作为绘制大小的基础,例如… 这真的很基础,并且没有考虑到概念变慢/变慢等问题。对于
我有一个在几个活动之间过渡的导航抽屉。在每个活动中,我都有一个基础片段,它可能启动其他片段。我希望导航抽屉切换图标显示时,我在基础片段,但当我添加另一个片段,我需要显示后箭头。 我一直在遵循riwnodennyk在的示例:使用片段时在Android导航抽屉图像和上插入符号之间切换 但这对我不起作用。箭头确实会出现,但我无法单击它。当点击它时,什么也不会发生。 非碱基片段中的OptionsMenuL
这个人基本上遇到了与我相同的问题,但是,提供的解决方案没有帮助,也不适用于我,因为我的代码实际上正在调用mDrawerToggle。sycnState()(在延迟的Runnable中)。 我还尝试将其添加到我的片段中创建的onActivityCreated中,它似乎没有任何作用。我不知道syncState到底做了什么,我无法判断它是否正在同步打开的状态(模板代码默认情况下会发生这种情况),然后当抽