Класс Bottom sheet уже сделает это за вас. Просто установите высоту его просмотра равным 0, и он уже должен прослушивать жест сдвига.
Однако, я не уверен, что он будет работать с высотой просмотра 0. Поэтому, если это не сработает, просто установите высоту просмотра 20dp и сделайте верхнюю часть макета нижнего листа прозрачной, чтобы это не виден.
Это должно сработать для тебя, если я не пойму твой вопрос. Если ваша цель состоит в том, чтобы просто иметь возможность постукивать внизу и скользить вверх, поднимая нижний лист, который должен быть довольно прямым.
Единственная возможная проблема, с которой вы могли бы столкнуться, - это если нижний лист не получает сенсорные события из-за кнопки, уже потребляющей его. Если это произойдет, вам нужно будет создать сенсорный обработчик для всего экрана и вернуть «true», что вы обрабатываете его каждый раз, а затем просто перенаправить сенсорные события в базовый вид, так что, когда вы превысите порог своей нижней вкладки На панели вы начинаете отправлять сенсорные события на макет нижнего листа вместо панели вкладок.
Звучит сложнее, чем есть. У большинства классов есть onTouch, и вы просто отправляете его дальше. Однако идите по этому пути, только если он не работает для вас из коробки, как я описал в первых двух сценариях.
Наконец, еще один вариант, который может сработать, - это создать кнопки вкладок как часть bottomSheetLayout и сделать высоту просмотра равной панели вкладок. Затем убедитесь, что панель вкладок ограничена нижним родительским листом, так что, когда вы проводите вверх, она просто остается внизу. Это позволит вам нажимать на кнопки или получить поведение свободного нижнего листа.
Счастливого кодирования!