在我的项目中,我正在使用version 的这个材料抽屉库和version 的5.0.0
这个QR 码阅读器库2.0.1
。XML 布局具有以下结构:
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ViewStub
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout="@layout/include_qr_reader" />
<Toolbar
android:id="@+id/toolbar"
...
/>
...
</FrameLayout>
这里@layout/include_qr_reader
只是一个视图:
<com.dlazaro66.qrcodereaderview.QRCodeReaderView
android:layout_width="match_parent"
android:layout_height="match_parent" />
在我的活动课程中,我首先检查相机权限,如果获得许可,我只需调用viewStub.inflate()
. 结果我的抽屉被裁剪,如下图所示:
在视图更新(单击某个按钮)后,抽屉恢复正常。
并且 LayoutInspector 也说一切正常:
如果您需要有关此案例的更多信息,请在评论部分告诉我。
问题
为什么当相机处于活动状态时我的 DrawerLayout 在底部被裁剪?
我已经尝试过:
- 之后在代码中更改抽屉的布局参数
.inflate()
- 之后在代码中更改 qrreaderview 的布局参数
.inflate()
- 调用
.requestLayout()
and.invalidate()
来自QRCodeReaderView
,DrawerLayout
和Activity.getWindow().getDecorView()
- 调用
.requestLayout()
和.invalidate()
那些视图new Handler().post(() -> ...)
viewStub.inflate().post(() -> drawer.getDrawerLayout().invalidate())