В моем проекте я использую этот ящик с материалами 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())