Макет ящика обрезается внизу, когда QRCodeReaderView надувается - PullRequest
0 голосов
/ 25 сентября 2018

В моем проекте я использую этот ящик с материалами lib версии 5.0.0 и этот читатель QR-кода lib версии 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() и .invalidate() из QRCodeReaderView, DrawerLayout и Activity.getWindow().getDecorView()
  • Вызов .requestLayout() и .invalidate() этих просмотров в new Handler().post(() -> ...)
  • viewStub.inflate().post(() -> drawer.getDrawerLayout().invalidate())
...