gpt4 book ai didi

android - LayoutTransition 高度为 0 导致 View 立即消失而没有动画

转载 作者:行者123 更新时间:2023-11-29 15:37:36 35 4
gpt4 key购买 nike

给定一个始终与父底部对齐的 View ,最初高度为 0,我想对其进行动画处理,使其向上滑动到 WRAP_CONTENT 的高度。我正在使用布局转换来实现这一点:

viewGroup.layoutTransition.enableTransitionType(LayoutTransition.CHANGING)

其中 viewGroupviewToAnimate 的父级并且具有 animateLayoutChange=true

逻辑是:

val params = viewToAnimate.layoutParams

if (expand && params.height == 0) {
params.height = ViewGroup.LayoutParams.WRAP_CONTENT
viewToAnimate.layoutParams = params
} else if (collapse && params.height != 0) {
params.height = 0
viewToAnimate.layoutParams = params
}

这在 View 展开时效果很好; View 从底部向上滑动到它的高度。但是,当高度设置为 0 时, View 只是消失并且不会滑入。viewToAnimate 是一个带有一些 TextView 的相对布局,没有什么复杂的。如有任何建议,我们将不胜感激。

视频展示效果(注意文字没有下滑,只是消失了):https://www.dropbox.com/s/1pq7yh0bqx8ghif/2017_10_06_23_17_11.mp4?dl=0

查看动画:

<RelativeLayout>

..some other stuff...

<RelativeLayout
android:id="@+id/viewToAnimate"
android:layout_width="match_parent"
android:layout_height="0dp"
android:gravity="center"
android:layout_alignParentBottom="true"
android:background="@color/white">

<TextView
android:id="@+id/sampleText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Sample Text"
android:textSize="50sp"/>

</RelativeLayout>

</RelativeLayout>

最佳答案

viewToAnimate 布局 高度 保持为“wrap_content”,将 textView 高度保持为“0dp”。请参见下面的示例。

    <RelativeLayout
android:animateLayoutChanges="true"
android:id="@+id/viewToAnimate"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_alignParentBottom="true"
android:background="@android:color/white">

<TextView
android:id="@+id/sampleText"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:text="Sample Text"
android:textSize="50sp"/>

</RelativeLayout>


final RelativeLayout viewToAnimate = (RelativeLayout) findViewById(R.id.viewToAnimate);
viewToAnimate.getLayoutTransition().enableTransitionType(LayoutTransition.CHANGING);

TextView sampleTV = (TextView)findViewById(R.id.sampleText);
ViewGroup.LayoutParams params = sampleTV.getLayoutParams();
if (params.height == 0) {
params.height = ViewGroup.LayoutParams.WRAP_CONTENT;
}else {
params.height = 0;
}

sampleTV.setLayoutParams(params);

试着让我知道。

关于android - LayoutTransition 高度为 0 导致 View 立即消失而没有动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46613351/

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