我尝试使用设计库 23.0.2 的新volumes:
- name: containers
hostPath:
path: /var/lib/docker/containers
- name: varlog
hostPath:
path: /var/log
,但我认为它太有限了。当我使用BottomSheetBehaviour
方法更改状态时,底部图片会使用广告动画移至新状态。
如何在没有动画的情况下立即更改状态?我没有看到公开的方法来做到这一点。
答案 0 :(得分:1)
不幸的是,看起来你不能。 for (int i = 2; i < 5; i++)
{
xlWorkSheet.Cells[3, i].Borders[Excel.XlBordersIndex.xlEdgeRight].Weight = 1d;
}
BottomSheetBehavior
的调用以setState
的同步或异步调用结束。而且无法覆盖这些方法,因为startSettlingAnimation(child, state)
是最终的,setState
具有包可见修饰符。查看源以获取更多信息。
我遇到了同样的问题,但是以一种不同的方式 - 我的UI状态在结算动画调用之前将startSettlingAnimation
更改为false,所以我在那里得到setHideable
。我会考虑使用IllegalStateException
来妥善管理。
答案 1 :(得分:1)
如果要删除显示/关闭动画,可以使用 dialog.window?.setWindowAnimations(-1)
。例如:
class MyDialog(): BottomSheetDialogFragment() {
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
val dialog = super.onCreateDialog(savedInstanceState)
dialog.window?.setDimAmount(0f) // for removing the dimm
dialog.window?.setWindowAnimations(-1) // for removing the animation
return dialog
}
}
答案 2 :(得分:0)
如果您真的需要它,那么您可以求助于反思:
'user.id = :userId'
然后,当状态更改时,您可以使用以下扩展方法:
fun BottomSheetBehavior.getViewDragHelper(): ViewDragHelper? = BottomSheetBehavior::class.java
.getDeclaredField("viewDragHelper")
.apply { isAccessible = true }
.let { field -> field.get(this) as? ViewDragHelper? }
fun ViewDragHelper.getScroller(): OverScroller? = ViewDragHelper::class.java
.getDeclaredField("mScroller")
.apply { isAccessible = true }
.let { field -> field.get(this) as? OverScroller? }
我还要补充一点,代码不是完美的,每次状态改变时获取字段都是无效的,而这样做是为了简单起见。