Этого можно добиться, используя пакет AndroidSlidingUpPanel от Umano
Импорт библиотеки
dependencies {
repositories {
mavenCentral()
}
implement 'com.sothree.slidinguppanel:library:3.4.0'
}
Включите com.sothree.slidinguppanel.SlidingUpPanelLayout в качестве корневого элемента в макете своей деятельности.Макет должен иметь гравитацию, установленную сверху или снизу.Убедитесь, что у него двое детей.Первый ребенок - ваш основной макет.Второй ребенок - ваш макет для сдвигающейся панели.Основной макет должен иметь ширину и высоту, равные match_parent.Скользящий макет должен иметь ширину, равную match_parent, и высоту, равную match_parent, wrap_content или максимально желаемой высоте.Если вы хотите определить высоту как представление экрана, установите для него значение match_parent, а также определите атрибут layout_weight для скользящего вида.По умолчанию вся панель будет действовать как область перетаскивания и будет перехватывать щелчки и событие перетаскивания
например, xml
<com.sothree.slidinguppanel.SlidingUpPanelLayout
xmlns:sothree="http://schemas.android.com/apk/res-auto"
android:id="@+id/sliding_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="bottom"
sothree:umanoPanelHeight="68dp"
sothree:umanoShadowHeight="4dp">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:text="Main Content"
android:textSize="16sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center|top"
android:text="The Awesome Sliding Up Panel"
android:textSize="16sp" />
</com.sothree.slidinguppanel.SlidingUpPanelLayout>
https://github.com/umano/AndroidSlidingUpPanel