/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000
Библиотека AndroidSlidingUpPanel позволяет создать выдвигающую панель сверху или снизу.
На момент написания версия библиотеки 2.0.4
Установим зависимость в Gradle.
dependencies {
compile 'com.sothree.slidinguppanel:library:2.0.4'
}
Контейнер SlidingUpPanelLayout должен быть корневым и содержать два дочерних элемента. Атрибут android:gravity позволяет задать расположение панели: снизу (bottom) или сверху (top). Между панелью и основным содержанием выводится полоска, которую можно убрать через нулевое значение атрибута sothree:shadowHeight. По умолчанию основное содержание сдвигается, но можно сделать наложение панели на основное содержание через атрибут sothree:overlay="true". При выдвижении основной экран затемняется на серый цвет, можно установить свой цвет затемнения через атрибут sothree:fadeColor.
Сама панель выдвигается либо нажатием, либо сдвигом. Также эти возможности можно отключить и показывать панель программно. Доступен эффект параллакса и другие возможности.
Пример разметки
<?xml version="1.0" encoding="utf-8"?>
<com.sothree.slidinguppanel.SlidingUpPanelLayout xmlns:android="http://schemas.android.com/apk/res/android"
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:panelHeight="68dp"
sothree:shadowHeight="4dp"
sothree:overlay="true"
sothree:fadeColor="@android:color/holo_blue_light">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:text="Синий кот. Приучен к лотку. Ласковый. Мурлыкает как трактор Беларусь."
android:textSize="16sp" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:gravity="center|top">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Выдвижная панель"
android:textSize="16sp" />
<ImageView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:src="@drawable/ic_launcher_cat" />
</LinearLayout>
</com.sothree.slidinguppanel.SlidingUpPanelLayout>
В данном примере показан пример в исходном состоянии, а также при выдвижении, когда панель накладывается (overlay) и используется светло-синий цвет для затемнения.