如何增加 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()
我正尝试在 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()