1

在我的应用程序中,视图显示为 googleBtn。如果我按下它,则会发生动画并且菜单视图会转到上方。如果我再次按下该按钮,则菜单将打开。请参阅下图。

菜单打开时:

在此处输入图像描述

菜单关闭后:

在此处输入图像描述

现在的问题是动画出现在隐藏菜单的正确位置。但是在完成动画后,我想将菜单布局固定到那个位置(就像第二张图片一样),但它并没有像那样发生。

现在,如果菜单打开并且我按下谷歌按钮,那么菜单就会关闭。但在完成动画后,它会回到正常位置。

我尝试修复布局的滚动 y 位置,但仍未成功。

按钮单击的代码如下:

case R.id.googleBtn:
        if(menu){   
            menuLayout.startAnimation(hideMenu);
            menu = false;
        }
        else{
            menuLayout.startAnimation(showMenu);
            menu = true;
        }
        break;

菜单的布局如下:

  <LinearLayout android:id="@+id/menuLayout" 
    android:layout_height="wrap_content" android:layout_width="fill_parent"
    android:gravity="center_horizontal" 
    android:background="@drawable/slide">
    <View android:layout_height="80dp" android:layout_width="80dp"
        android:layout_marginBottom="25dp" android:id="@+id/googleBtn"
        android:background="#00000000" android:layout_gravity="bottom"/>    

</LinearLayout>

那么为什么我无法修复滚动值??

在这方面需要帮助。

更新

这是我的动画代码:

对于菜单隐藏:

<?xml version="1.0" encoding="utf-8"?>

<translate 
    android:fromYDelta="0" 
    android:toYDelta="-70%" 
    android:duration="1000"
    android:fillEnabled="true"
    android:fillAfter="true"
    />

对于 MenuShow:

    <?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate 
        android:fromYDelta="-70%" 
        android:toYDelta="0" 
        android:duration="1000"/>
</set>
4

2 回答 2

1

我想你正在寻找这个安卓:滑动抽屉

这里的 Panel 是一个容器,其中包含您的视图,它还支持动画、投掷等。

您可以在这里找到其他小部件源http://code.google.com/p/android-misc-widgets/source/browse/#svn%2Ftrunk%2Fandroid-misc-widgets%2Fsrc%2Forg%2Fmiscwidgets%2Fwidget

于 2012-04-11T05:17:25.283 回答
1

您可能需要设置android:fillEnabled="true"和/或android:fillAfter="true".

如果这不起作用,您可以将更改应用于AnimationListener#onAnimationEnd.

于 2012-04-11T05:21:17.770 回答