我正在尝试使用TransitionManager.beginDelayedTransition(ViewGroup sceneRoot)
的简单动画来在根ConstraintLayout中为TextView的可见性变化设置动画。
将可见性设置为View.VISIBLE
时,一切都会按预期进行。
另一方面,当将可见性设置为View.GONE
时,正好在将TextView设置为GONE之前,TextView包含的文本会失真/残留。
使用的代码:
private fun onTitleClicked(@IdRes viewId: Int) {
val layout = findViewById<View>(viewId)
TransitionManager.beginDelayedTransition(scene_root)
val expanded = layout.visibility == View.VISIBLE
layout.visibility = if (expanded) View.GONE else View.VISIBLE
}
使用的XML:
<TextView
android:id="@+id/tv_architecture_components_title"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:background="@drawable/bg_blue_rectangle"
android:foreground="?android:selectableItemBackground"
android:gravity="center"
android:onClick="onClick"
android:padding="10dp"
android:text="@string/android_architecture_components"
android:textColor="@color/md_blue_800"
android:textSize="16sp"
app:layout_constraintBottom_toTopOf="@+id/btn_architecture_components1"
app:layout_constraintEnd_toStartOf="@+id/guideline_end"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="@+id/guideline_start"
app:layout_constraintTop_toBottomOf="@+id/tv_code_labs_title"/>
它看起来像这样:
任何想法/建议如何解决该问题?
似乎只有三星手机才会发生。