翻译半隐藏视图的动画

时间:2014-03-21 16:55:27

标签: android android-listview

在TranslateAnimation期间,我尝试将视图从窗口外移动到内部。

在一个建议中,他们说要使用ScrollView,但即便如此,也没有任何变化。

还有其他方法可以实现吗?

修改

这是布局:

<RelativeLayout android:layout_width="fill_parent"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/login_linear_layout"
    android:layout_height="wrap_content"
    android:background="@color/background_box" >

    <com.project.view.PullToRefreshListView
        android:dividerHeight="0dp"
        android:divider="#000"
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:id="@+id/mainList"
        android:background="@color/background_list"
        />

    <include layout="@layout/element_contacts_button"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true" />
</RelativeLayout>

这就是动画

private void bounceBackHeader(){
    int yTranslate = state == State.REFRESHING ?
            header.getHeight() - headerContainer.getHeight() :
            -headerContainer.getHeight() - headerContainer.getTop() + getPaddingTop();

    TranslateAnimation bounceAnimation = new TranslateAnimation(
            TranslateAnimation.ABSOLUTE, 0,
            TranslateAnimation.ABSOLUTE, 0,
            TranslateAnimation.ABSOLUTE, 0,
            TranslateAnimation.ABSOLUTE, yTranslate);

    bounceAnimation.setDuration(BOUNCE_ANIMATION_DURATION);
    bounceAnimation.setFillEnabled(true);
    bounceAnimation.setFillAfter(false);
    bounceAnimation.setFillBefore(true);
    bounceAnimation.setInterpolator(new OvershootInterpolator(BOUNCE_OVERSHOOT_TENSION));
    bounceAnimation.setAnimationListener(new HeaderAnimationListener(yTranslate));

    startAnimation(bounceAnimation);
}

当我拖动listview项目时会出现问题..它只会动画视图的剩余部分而不是整个视图。

1 个答案:

答案 0 :(得分:2)

问题在于,当我在parentView外移动视图时,视图会被剪切。

解决方案是将此选项添加到parentView:

android:clipChildren="false"

通过这种方式,parentView不会剪切childView,并且在从外部到内部的转换中,视图仍将像以前一样完成。