问题描述
我很难解释这个问题,但是您可以看到以下布局代码,
首先,我的布局看起来像这样:
是的,这是使用webrtc的呼叫屏幕,当我有视频时,将其放到main_render中,当我有视频大小的委托时更改大小:
main_render.setScalingType(RendererCommon.ScalingType.SCALE_ASPECT_FIT)
main_render.init(rootEglBase.eglBaseContext,object : RendererCommon.RendererEvents{
override fun onFirstFrameRendered() {
Log.e(TAG,"onFirstFrameRendered")
}
override fun onFrameResolutionChanged(i: Int,i1: Int,i2: Int) {
Log.e(TAG,"onFrameResolutionChanged: $i - $i1")
runOnUiThread {
val newParams = main_render.layoutParams as FrameLayout.LayoutParams
newParams.width = dm.widthPixels
newParams.height = i1 * dm.widthPixels / i
main_render.layoutParams = newParams
main_render.requestLayout()
main_layout.updateViewLayout(main_render,newParams)
main_layout.requestLayout()
}
}
})
但是问题是大小没有改变,我必须按以隐藏工作表,再次按以显示工作表,然后现在大小发生变化(我可以单击以隐藏和显示折叠工作表)
有人可以帮我知道这个问题吗,当移除工作表并使用main_layout时,它可以正常工作,但是使用工作表时,大小无法立即更改
解决方法
如果有帮助,请尝试在更新视图布局后设置BottomSheet的状态:
val behavior = bottomSheetDialog.behavior
behavior.state = BottomSheetBehavior.STATE_EXPANDED