, ;)

кст:

в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 апи.

Ответы на вопрос(1)

Ваш ответ на вопрос