【问题标题】:ClassCastException in FloatingActionButtonFloatingActionButton 中的 ClassCastException
【发布时间】:2016-08-23 12:39:35
【问题描述】:

将 com.android.support:design lib 更新到 24.2.0 后,在 android.support.design.widget.FloatingActionButton 中出现 ClassCastException。它在 lib 版本 24.1.1 中工作正常

 java.lang.ClassCastException: android.widget.FrameLayout$LayoutParams cannot be cast to android.support.design.widget.CoordinatorLayout$LayoutParams
   at android.support.design.widget.FloatingActionButton$Behavior.isBottomSheet(FloatingActionButton.java:597)
   at android.support.design.widget.FloatingActionButton$Behavior.onDependentViewChanged(FloatingActionButton.java:589)
   at android.support.design.widget.FloatingActionButton$Behavior.onDependentViewChanged(FloatingActionButton.java:528)
   at android.support.design.widget.CoordinatorLayout.offsetChildToAnchor(CoordinatorLayout.java:1564)
   at android.support.design.widget.CoordinatorLayout.onChildViewsChanged(CoordinatorLayout.java:1233)
   at android.support.design.widget.CoordinatorLayout$OnPreDrawListener.onPreDraw(CoordinatorLayout.java:1812)
   at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:944)
   at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2000)
   at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1084)
   at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5990)
   at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
   at android.view.Choreographer.doCallbacks(Choreographer.java:580)
   at android.view.Choreographer.doFrame(Choreographer.java:550)
   at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
   at android.os.Handler.handleCallback(Handler.java:739)
   at android.os.Handler.dispatchMessage(Handler.java:95)
   at android.os.Looper.loop(Looper.java:135)

【问题讨论】:

  • 请不要只是在这里转储错误日志并期望我们知道您的代码并为您调试它。发布您的相关代码并为您的问题添加详细信息,以便我们为您提供帮助
  • 可能是您没有为 gradle 文件中的支持库更新与 24.2.0 相同的版本....
  • @Andrew L 只是将 android.support.design.widget.FloatingActionButton 放在我的 xml 文件中。它在 lib 版本 24.1.1 中工作正常

标签: android floating-action-button


【解决方案1】:

问题似乎是最新的支持库版本 24.2.0。将FloatingButton 的锚设置为不是其父CoordinatorLayout 的直接子视图的视图会导致此问题。

根据 Android 开源项目 - 问题跟踪器,这是一个已知问题。您可以在FAB can no longer be anchored to indirect children of CoordinatorLayout 看到标记为24.2.1 的未来版本 的问题。

cmet 在报告的问题中可能的解决方法是

  • FloatingActionButton 的锚视图设置为Coordinatorlayout 的直接子级。

  • 将您设置为FloatinActionButton 的锚点的视图包裹在一个新的CoordinatorLayout

来自 Android 开源项目 - 问题跟踪器

状态:FutureRelease

标签:Target-Support-24.2.1

【讨论】:

  • 不是很优雅,但是用 CoordinatorLayout 包裹锚点并将 CoordinatorLayout 标记为锚点,暂时修复了它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-11-23
  • 1970-01-01
  • 2011-08-09
  • 2012-06-25
  • 2019-05-12
  • 2014-04-09
  • 2017-12-05
相关资源
最近更新 更多