在我的项目中,我正在使用5.0.0
版的this material drawer lib和2.0.1
版的this QR code reader lib。 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()
之后的代码中更改抽屉的布局参数.inflate()
之后的代码中更改qrreaderview的布局参数.requestLayout()
,.invalidate()
和QRCodeReaderView
呼叫DrawerLayout
和Activity.getWindow().getDecorView()
.requestLayout()
中调用其中的.invalidate()
和new Handler().post(() -> ...)
viewStub.inflate().post(() -> drawer.getDrawerLayout().invalidate())