()"-6ren"> ()"-我使用 MotionLayout 已经有一段时间了,这绝对是一种享受。 但我一直面临着一个污染问题,我想知道如何才能摆脱。 基本上,我在日志中遇到以下类型的错误,尽管我的 MotionLayout 驱-6ren">
gpt4 book ai didi

android - MotionLayout - 日志中恼人的调试错误 : "no widget for ()"

转载 作者:行者123 更新时间:2023-12-04 13:56:48 24 4
gpt4 key购买 nike

我使用 MotionLayout 已经有一段时间了,这绝对是一种享受。

但我一直面临着一个污染问题,我想知道如何才能摆脱。

基本上,我在日志中遇到以下类型的错误,尽管我的 MotionLayout 驱动的布局没有发现任何问题:

2020-04-02 23:32:35.709 12500-12500/cz.nn.calllog E/MotionLayout: .(MotionLayout.java:1959)no widget for  callLog (com.google.android.material.card.MaterialCardView)
2020-04-02 23:32:35.709 12500-12500/cz.nn.calllog E/MotionLayout: .(MotionLayout.java:1967)no widget for callLog (com.google.android.material.card.MaterialCardView)
2020-04-02 23:32:35.709 12500-12500/cz.nn.calllog E/MotionLayout: .(MotionLayout.java:1959)no widget for spaceTop (android.widget.Space)
2020-04-02 23:32:35.710 12500-12500/cz.nn.calllog E/MotionLayout: .(MotionLayout.java:1967)no widget for spaceTop (android.widget.Space)
2020-04-02 23:32:35.710 12500-12500/cz.nn.calllog E/MotionLayout: .(MotionLayout.java:1959)no widget for callLogExpanded (com.google.android.material.card.MaterialCardView)
2020-04-02 23:32:35.710 12500-12500/cz.nn.calllog E/MotionLayout: .(MotionLayout.java:1967)no widget for callLogExpanded (com.google.android.material.card.MaterialCardView)
2020-04-02 23:32:35.710 12500-12500/cz.nn.calllog E/MotionLayout: .(MotionLayout.java:1959)no widget for callLogDeleteIcon (androidx.appcompat.widget.AppCompatImageView)
2020-04-02 23:32:35.710 12500-12500/cz.nn.calllog E/MotionLayout: .(MotionLayout.java:1967)no widget for callLogDeleteIcon (androidx.appcompat.widget.AppCompatImageView)
2020-04-02 23:32:35.710 12500-12500/cz.nn.calllog E/MotionLayout: .(MotionLayout.java:1959)no widget for guidelineLeft (androidx.constraintlayout.widget.Guideline)
2020-04-02 23:32:35.710 12500-12500/cz.nn.calllog E/MotionLayout: .(MotionLayout.java:1967)no widget for guidelineLeft (androidx.constraintlayout.widget.Guideline)
2020-04-02 23:32:35.710 12500-12500/cz.nn.calllog E/MotionLayout: .(MotionLayout.java:1959)no widget for callLog (com.google.android.material.card.MaterialCardView)
2020-04-02 23:32:35.710 12500-12500/cz.nn.calllog E/MotionLayout: .(MotionLayout.java:1967)no widget for callLog (com.google.android.material.card.MaterialCardView)
2020-04-02 23:32:35.710 12500-12500/cz.nn.calllog E/MotionLayout: .(MotionLayout.java:1959)no widget for spaceTop (android.widget.Space)
2020-04-02 23:32:35.710 12500-12500/cz.nn.calllog E/MotionLayout: .(MotionLayout.java:1967)no widget for spaceTop (android.widget.Space)
2020-04-02 23:32:35.710 12500-12500/cz.nn.calllog E/MotionLayout: .(MotionLayout.java:1959)no widget for callLogExpanded (com.google.android.material.card.MaterialCardView)
2020-04-02 23:32:35.710 12500-12500/cz.nn.calllog E/MotionLayout: .(MotionLayout.java:1967)no widget for callLogExpanded (com.google.android.material.card.MaterialCardView)

检查 build() MotionLayout.java的方法在理解导致这些错误的极端情况方面对我没有多大帮助。我的场景没有引用给定 MotionLayout 的所有子项,而只引用了动画的子项。但是这个日志错误引用了场景中完全定义的 child (意味着他们为所有 Constraint 定义了 ConstraintSet )以及那些没有引用的 child ,因为他们的约束没有变化(正是因为 MotionLayout 接受了这种便利,我将其定义排除在场景文件之外)。

我正在使用 RecyclerView每个 child 都有一个带有嵌入式 MotionLayout 的 View 。我怀疑他们两个在一起会以某种方式产生这个问题......谁能告诉我这是否可能是我应该担心的事情?到目前为止,我一直忽略它,因为正如我所说,我认为依赖这个类的布局的整体功能确实没有影响。

这一切都在运行 Android 10 的模拟器上进行了测试。

提前感谢您提供的任何见解!

最佳答案

这件事刚刚发生在我身上。问题是我试图在我的 fragment 中使用错误的 MotionLayout 设置过渡状态。 (我也有嵌套的 MotionLayouts)。
而不是调用 binding.secondMotionLayout.root.setState(...) , 我调用 binding.firstMotionLayout.root.setState(...) and attempting to reference the 约束集 s of the second 运动布局`。
也许你正在用你的 RecyclerView 做类似的事情。 ?我会确保正确引用 MotionLayout RecyclerView 中的每个项目。根据您实现它的方式,它将位于 ViewHolder 中。

关于android - MotionLayout - 日志中恼人的调试错误 : "no widget for <view id> (<view type>)",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61002323/

24 4 0