Android:无法将滚动设置为此视图?

时间:2012-04-11 05:13:41

标签: android android-layout layout android-linearlayout

在我的应用中,有一个视图说googleBtn。如果我按下它,则动画发生,菜单视图转到upar侧。如果我再次按下该按钮,则菜单将打开。请参阅下面的图像。

菜单已打开:

enter image description here

菜单关闭后:

enter image description here

现在问题是动画正好隐藏菜单。但是在完成动画之后,我想将菜单布局固定到那个位置(就像第二张图像一样)但不会发生这种情况。

现在,如果菜单打开,我按下谷歌按钮,然后菜单关闭。但在完成动画后,它会进入正常位置。

我已尝试修复布局的滚动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>

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

需要帮助。

更新

这是我的动画代码:

对于Menuhide:

<?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>

2 个答案:

答案 0 :(得分:1)

我认为您正在搜索此Android: Sliding Drawer

这里的Panel是一个容器,它包含你的视图,也支持动画,fling等。

您可以在http://code.google.com/p/android-misc-widgets/source/browse/#svn%2Ftrunk%2Fandroid-misc-widgets%2Fsrc%2Forg%2Fmiscwidgets%2Fwidget

找到其他小工具来源

答案 1 :(得分:1)

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

如果这不起作用,您可以将更改应用于AnimationListener#onAnimationEnd中的布局。