Сайт разработчика Александр Климова

/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000

Библиотека AndroidSlidingUpPanel

Библиотека 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) и используется светло-синий цвет для затемнения.

SlidingUpPanel SlidingUpPanel

Реклама