RelativeLayout,折叠/展开而不调整子高度

时间:2014-01-04 00:44:52

标签: android animation

我有一个使用包含ImageButtons的RelativeLayout制作的工具栏。我想在动画期间折叠/展开此RelativeLayout而不修改按钮高度。实际上,按钮会在动画期间自动更改高度以匹配父高度。它使动画变得迟钝而不是我想要的。

布局

    <RelativeLayout
    android:id="@+id/tweet_toolbar_container"
    android:layout_width="match_parent"
    android:layout_height="@dimen/tweet_toolbar_height"
    android:layout_marginTop="8dp"
    android:background="#858585">

    <ImageButton
        android:id="@+id/tweet_toolbar_reply"
        android:layout_width="48dp"
        android:layout_height="@dimen/tweet_toolbar_height"
        android:background="@drawable/background_gray_darker"
        android:src="@drawable/tweet_icon_toolbar_reply"/>

</RelativeLayout>

动画

    private void collapseToolbar() {
    ObjectAnimator animator = ObjectAnimator.ofInt(mToolbarContainer, VIEW_LAYOUT_HEIGHT, mToolbarHeight, 0);
    animator.addListener(new AnimatorListenerAdapter() {
        @Override
        public void onAnimationEnd(Animator animation) {
            super.onAnimationEnd(animation);
            mToolbarContainer.setVisibility(View.GONE);
        }
    });
    animator.setDuration(ANIMATION_DURATION);
    animator.start();
}

Property<View, Integer> VIEW_LAYOUT_HEIGHT = new Property<View, Integer>(Integer.class, "viewLayoutHeight") {

    public void set(View object, Integer value) {
        object.getLayoutParams().height = value.intValue();
        object.requestLayout();
    }

    public Integer get(View object) {
        return object.getLayoutParams().height;
    }
};

有谁知道如何实现它?

0 个答案:

没有答案