我已经做了服务器目录浏览应用程序,它会改变Activity
本身的内容。我已经新增了一项功能:Navigation Drawer
并在Toolbar
处理汉堡和回图标如下:汉堡箭头动画不能正常工作程序
- 主目录:
- 汉堡图标为默认状态。
- 会上点击汉堡包或在滑动操作的导航抽屉滑动。
- 否当抽屉滑动时汉堡包的状态变化或动画。
- 汉堡包的动画当选择一个目录来返回图标。
- 任何子目录:
- 从以前的动画,其唯一目的就是去父目录后退按钮。
- 以滑动手势滑动导航抽屉。
- 否的状态变化或动画背景图标当使用手势滑动抽屉或当它进入此目录的另一个子目录时。
- 后退箭头的动画图标汉堡包时使用它后面的图标或
onBackPressed
回来的主目录。
我能够得到汉堡的动画使用this answer(代码是逐字采用的是如下)来备份图标,但没能回来到主目录时,再次拿到汉堡图标(不包括该代码,并去了另一种方法是下一部分):浏览来来回回从家里和孩子目录时
ValueAnimator anim = ValueAnimator.ofFloat(0f, 1f);
anim.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator valueAnimator) {
float slideOffset = (Float) valueAnimator.getAnimatedValue();
mDrawerToggle.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();
对于汉堡包和后退图标之间适当的切换,我已经使用this answer(代码如下)作为参考逐字,并能够成功地实现它的家庭和孩子目录1,2和3功能。
private void enableViews(boolean enable) {
if(enable) {
mDrawerToggle.setDrawerIndicatorEnabled(false);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true); // comment this line of code
if(!mToolBarNavigationListenerIsRegistered) {
mDrawerToggle.setToolbarNavigationClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Doesn't have to be onBackPressed
onBackPressed();
}
});
mToolBarNavigationListenerIsRegistered = true;
}
}
else {
// Remove back button
getSupportActionBar().setDisplayHomeAsUpEnabled(false);
getSupportActionBar().setHomeButtonEnabled(false); // comment this line of code
// Show hamburger
mDrawerToggle.setDrawerIndicatorEnabled(true);
// Remove the/any drawer toggle listener
mDrawerToggle.setToolbarNavigationClickListener(null);
mToolBarNavigationListenerIsRegistered = false;
}
}
来到眼前的问题是:在浏览目录时,切换来来回回从汉堡到返回图标,动画部分是不工作的。但是这两个图标的状态都会随着它们的功能而成功更改。如果您需要更多信息进行故障排除,请告知我们。
你是否开始一个新的活动来显示子目录,或者它是与一个新的片段相同的活动? – Dibzmania
@Dibzmania同样的活动。我只是更新GridView(用Image + Text定制的),我没有在这个项目中使用任何类型的片段。我只是将互联网上的文件和有用的文档放在一起,并在理解解决方案并将其更新为我的要求后开始工作。不过,我刚刚解决了这个问题,并且我已经更新了未来参考文献的答案。 –