gpt4 book ai didi

java - 汉堡包到箭头动画无法以编程方式工作

转载 作者:太空狗 更新时间:2023-10-29 13:10:25 26 4
gpt4 key购买 nike

我制作了一个服务器目录浏览应用程序,可以更改 Activity 中的内容本身。我一直在添加一个功能:Navigation Drawer并处理 Toolbar 上的汉堡包返回 图标如下:

  • 主目录:
    1. 汉堡图标作为默认状态。
    2. 会在点击汉堡包或滑动手势时滑动抽屉导航。
    3. 滑动抽屉时,汉堡包的状态不会发生变化或动画。
    4. 选择目录时汉堡包返回图标的动画。
  • 任何子目录:
    1. 上一个动画的后退按钮,其唯一目的是转到父目录。
    2. 会以滑动手势滑动抽屉导航。
    3. 没有当使用手势滑动抽屉或进入此目录的另一个子目录时,后退图标的状态更改或动画。
    4. 当使用返回图标或 onBackPressed 返回主目录时,返回汉堡包图标 的动画.

我可以使用 this answer 获得 Hamburger to Back 图标的动画(代码逐字使用如下)但是当回到主目录时无法再次获得汉堡包图标(没有包含该代码并采用另一种方法,这是下一部分) :

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();

为了在主目录和子目录之间来回浏览时在 Hamburger 和 Back 图标之间进行适当的切换,我使用了 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;
}
}

现在的问题是:在浏览目录时,从汉堡图标到返回图标来回切换,动画部分根本不起作用。但是这两个图标的状态及其功能都已成功更改。如果您需要更多信息来进行故障排除,请告诉我。

最佳答案

如果您只是创建一个新项目,添加一个 Activity 并使用模板,您可以看到一个抽屉导航 Activity 的工作示例 NavigationDrawer (如果你使用 Android Studio。否则下载 this repo )

当我想学习一种新布局时,我只需加载模板,然后更改个别代码 fragment ,直到获得我想要的内容。通过这种方式,您可以看到什么在做什么,什么在您删除某些行时停止工作以及应该如何完成。

关于java - 汉堡包到箭头动画无法以编程方式工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41870724/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com