在自定义视图的构造函数中获取 CoordinatorLayout 行为

Get CoordinatorLayout Behavior in Constructor of Custom View

我创建了一个自定义视图来处理我的底部 sheet 实现。我尝试使用 BottomSheetBehavior.from( this ) 检索 bottomsheet 行为,但由于我需要构造函数中的行为,因此 this 尚未初始化。

目前,我已经使用 1ms 的 postDelayed runnable 来解决问题并执行我需要的操作,但这显然是一个 hack。

我一直找不到任何其他方法来获得该行为。

[编辑]

深入了解后,this 未初始化似乎不是问题所在。问题是当直接从构造函数调用 BottomSheetBehavior.fromLayoutParams 不是 CoordinatorLayout.LayoutParams 的实例,但当从构造函数中创建的可运行对象调用时它们是 CoordinatorLayout.LayoutParams 的实例。

在仔细查看了 View 文档之后,我将调用从视图的构造函数移至其 onAttachedToWindow 方法。

我发现这比使用 runnable 更干净。