1

在我的项目中,我正在使用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,DrawerLayoutActivity.getWindow().getDecorView()
  • 调用.requestLayout().invalidate()那些视图new Handler().post(() -> ...)
  • viewStub.inflate().post(() -> drawer.getDrawerLayout().invalidate())
4

0 回答 0