我有一个BottomSheetView
其中有animateLayoutChanges="true"
。最初它显示得很好。但如果改变visibility
一个视图(内部BottomSheetView
) from GONE
to VISIBLE
,该应用程序搞乱了计算,我的BottomSheetView
移动到屏幕顶部。我尝试过设置layout_gravity=bottom
的根部BottomSheetView
布局。但没有成功。
这是我的图像BottomSheetView
在更改任何视图的可见性之前。 (点击图片查看大图)
当我更改视图的可见性后(GONE
to VISIBLE
or VISIBLE
to GONE
),我的 BottomSheetView 移动到顶部。 (点击图片查看大图)
我猜,Android 在计算视图测量时搞砸了width
and height
。有什么办法解决这个问题吗??
我还尝试使 BottomSheetView 完全扩展以匹配父视图,但不知何故,这使得height
of the BottomSheetView
比手机屏幕长,并且会造成滚动问题。
预期解决方案:
1> 预防BottomSheetView
即使在改变其位置时visibility
视图的改变。
OR
2>使BottomSheetView
匹配父级,这样在计算混乱后看起来不会很糟糕。
BottomSheetBehavior 不能很好地工作LayoutTransition
(animateLayoutChanges="true"
) 目前。我将致力于修复。
现在,您可以使用Transition
反而。像这样的东西会使内部视图淡化并使底部工作表的大小产生动画效果。
ViewGroup bottomSheet = ...;
View hidingView = ...;
TransitionManager.beginDelayedTransition(bottomSheet);
hidingView.setVisibility(View.GONE);
您可以参考应用过渡 https://developer.android.com/training/transitions/transitions.html了解更多信息,包括如何自定义动画。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)