如何增加 BottomSheetDialog 的高度以跟随垂直平移

How to increase the height of a BottomSheetDialog to follow a vertical translation

我正尝试在 BottoSheetDialog 中垂直移动视图,但出现意外行为。

我的BottomSheet看起来像这样

翻译前

我正在移动我的约束布局 myLayout.animate().translationY(-100f).setStartDelay(0).start()

这是翻译后的BottomSheet:

转换后

如何动态增加 BottomSheet 的大小以跟随翻译?

据我所知,您可以通过编程方式更改 BottomSheet 的高度,在我的应用程序中,我使用以下代码使 BottomSheet 对话框采用屏幕(如果可能):

BottomSheetBehavior mBehavior = BottomSheetBehavior.from((View) sheetView.getParent());
mBehavior.setPeekHeight((int) (ScreenUtils.getScreenHeight()));

所以在你的情况下:

(int) (ScreenUtils.getScreenHeight()) 更改为您的尺码值。

我找到了解决此问题的替代方案。我刚刚在布局底部添加了一个 1dp 高度的空视图。我正在像这样增加它的大小

val anim = ValueAnimator.ofInt(AnimationView.measuredHeight, 100)
anim.addUpdateListener()
{
     valueAnimator ->
     val value = valueAnimator.animatedValue as Int
     val layoutParams: ViewGroup.LayoutParams = AnimationView.layoutParams
     layoutParams.height = value
     AnimationView.layoutParams = layoutParams
 }
 anim.duration = 500
 anim.start()