gpt4 book ai didi

Android:MotionLayout 无法将 View 可见性设置为消失, View 保持可见

转载 作者:行者123 更新时间:2023-12-04 23:59:53 25 4
gpt4 key购买 nike

我的布局是 MotionLayout,它必须是 FrameLayouts,我为其定义了 motionscene ConstraintSets 开始和结束。并且它们动画正确。

然后在这个动画 FrameLayouts 下面我添加了 2 个 TextViews 并在点击时我尝试隐藏一个并显示另一个但随后两者都保持可见

 <!-- No Account Line -->
<TextView
android:id="@+id/noAccountTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

android:text="@string/no_account_question"
android:fontFamily="@font/avenirnext_demibold"
android:textSize="15sp"
android:textColor="@color/black"

tools:ignore="MissingConstraints" />

<TextView
android:id="@+id/signupTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

android:text="@string/signup_answer"
android:fontFamily="@font/avenirnext_demibold"
android:textSize="15sp"
android:textColor="@color/colorAccent"

android:selectAllOnFocus="false"
android:linksClickable="false"
android:autoLink="all"

android:clickable="true"

tools:ignore="MissingConstraints" />

<TextView
android:id="@+id/nowTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

android:text="@string/now_answer"
android:fontFamily="@font/avenirnext_demibold"
android:textSize="15sp"
android:textColor="@color/black"

tools:ignore="MissingConstraints" />


<androidx.constraintlayout.helper.widget.Flow
android:id="@+id/noAccountLine"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

app:flow_horizontalGap="8dp"

app:constraint_referenced_ids="noAccountTextView, signupTextView, nowTextView"
app:layout_constraintVertical_bias="1.0"

android:layout_marginBottom="16dp"
android:visibility="visible"

app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
/>

<!-- No Account Line -->

<!-- Have Account Line -->

<TextView
android:id="@+id/haveAccountTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

android:text="@string/have_account_question"
android:fontFamily="@font/avenirnext_demibold"
android:textSize="15sp"
android:textColor="@color/black"

tools:ignore="MissingConstraints" />

<TextView
android:id="@+id/loginTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

android:text="@string/log_in_answer"
android:fontFamily="@font/avenirnext_demibold"
android:textSize="15sp"
android:textColor="@color/colorAccent"

android:selectAllOnFocus="false"
android:linksClickable="false"
android:autoLink="all"

android:clickable="true"

tools:ignore="MissingConstraints" />

<TextView
android:id="@+id/insteadTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

android:text="@string/instead_answer"
android:fontFamily="@font/avenirnext_demibold"
android:textSize="15sp"
android:textColor="@color/black"

tools:ignore="MissingConstraints" />

<androidx.constraintlayout.helper.widget.Flow
android:id="@+id/haveAccountLine"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

app:flow_horizontalGap="8dp"

app:constraint_referenced_ids="haveAccountTextView, loginTextView, insteadTextView"
app:layout_constraintVertical_bias="1.0"

android:layout_marginBottom="16dp"
android:visibility="gone"

app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
/>

我可以在 MotionLayout 中执行此操作,还是我需要将 FrameLayout 包装在单独的 MotionLayout 中,然后将其与此 TextView 一起放置在 ConstraintLayout 中。似乎是开始/结束状态,我没有为此 TextViews(约束)定义行为正在破坏某些东西。

我试过用这样的东西

override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState)

    signupTextView.setOnClickListener {
//authenticationFragment.transitionToEnd()
//isFrontCard = false

/*
val transition: Transition = Fade()
transition.setDuration(350)
transition.addTarget(R.id.noAccountLine)
transition.addTarget(R.id.haveAccountLine)

TransitionManager.beginDelayedTransition(authenticationFragment, transition)
*/

noAccountLine.isGone = true
haveAccountLine.isVisible = true
}

同样在注释掉代码后它不起作用。我可以让 MotionLayout 跳过一些 View 吗?或者我需要添加另一个布局嵌套?

最佳答案

需要在motionLayout的文件layoutDescription中创建约束,并设置visibilityMode = "ignore"。喜欢

        <Constraint
android:id="your view in motion layout"
app:visibilityMode="ignore"
/>

关于Android:MotionLayout 无法将 View 可见性设置为消失, View 保持可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61662998/

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