, ;)
вandroid-7.1.1_r12
API,android.hardware.camera2
используетStickyBottomCaptureLayout
как"BottomBar"
для отображения кнопок действий (таких как кнопки переключения камеры, затвора и недавних изображений). Независимо от ориентации устройства, этоStickyBottomCaptureLayout
всегда отображается над / рядом с системной панелью (на которой расположены кнопки «Назад», «Домой» и «Другие приложения»).
Например, это то, что выглядит, когда степень вращения0
или же180
:
И, ориентируя устройство и получить степень вращения как90
или же270
,StickyBottomCaptureLayout
сейчас возле системной панели:
Как правило, этот скриншот должен иметь полоску слева и камеру справа ...
Пытается:Сначала я попытался установить другой макет сlayout-land
но не повезло! Я не могу изменить стандартную ориентацию слева направо и привязать нижнюю панель к системной панели Android на270
градусов.
Я не могу продлитьэти виджеты, но я пытался воспроизвести случай. Например, я получил два макета:
<FrameLayout>
<ViewGroup .../> // containing the upper views
<StickyBottomBar .../> // same behavior as StickyBottomCaptureLayout
</FrameLayout>
При каждом изменении ориентации я получаю устройство вращения и устанавливаю правильную гравитацию для верхнего макета и липкой панели, что-то вроде следующего:
if (rotation == 0) {
// views gravity = TOP
// sticky gravity = BOTTOM
} else if (rotation == 90) {
// views gravity = LEFT
// sticky gravity = RIGHT
} else if (rotation == 180) {
// views gravity = BOTTOM
// sticky gravity = TOP
} else if (rotation == 270) {
// views gravity = RIGHT
// sticky gravity = LEFT
}
Тем не менее, это не работает вообще. Я не знаю, как эти виджеты заставляют это работать должным образом.
Вопрос:У кого-нибудь есть решение воспроизвести случай нижней панели при изменении ориентации устройства (всегда выше или около системной панели Android)? Помня, что мой минимальный SDK ниже21
так что у меня нет доступа кandroid.hardware.camera2
апи.