可以下滑顯示出一個面板的Android Toolbar:ToolbarPanel

jopen 9年前發布 | 16K 次閱讀 Android開發 移動開發 ToolbarPanel

ToolbarPanel 一個可以下滑顯示出一個面板的Toolbar。這個library受Drawerlayout的啟發,但有別于Drawerlayout顯示左右抽屜,這個library會提供下拉toolbar顯示一個面板的功能。

Toolbar Panel Demo

Usage

To use it you need to implementToolbarPanelLayoutas your root layout :

<com.nikoyuwono.toolbarpanel.ToolbarPanelLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/sliding_down_toolbar_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:panelId="@+id/panel"
    app:toolbarId="@+id/toolbar">

    <RelativeLayout
        android:id="@+id/content_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        //Your content here
    </RelativeLayout>

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/color_primary" />

    <RelativeLayout
        android:id="@+id/panel"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        //Your panel content here
    </RelativeLayout>
</com.nikoyuwono.toolbarpanel.ToolbarPanelLayout>

The key is to setpanelIdandtoolbarIdtoToolbarPanelLayoutso it can decide where to draw the panel

To open and close panel programatically you can call

ToolbarPanelLayout.openPanel(); // Open the panel
ToolbarPanelLayout.closePanel(); // Close the panel

And to lock the panel you can useToolbarPanelLayout.setLockMode(int lockMode);which support 3 Mode :

/**
 * The drawer is unlocked.
 */
public static final int LOCK_MODE_UNLOCKED = 0;

/**
 * The drawer is locked closed. The user may not open it, though the app may open it
 * programmatically.
 */
public static final int LOCK_MODE_LOCKED_CLOSED = 1;

/**
 * The drawer is locked open. The user may not close it, though the app may close it
 * programmatically.
 */
public static final int LOCK_MODE_LOCKED_OPEN = 2;

You can also set listener to theToolbarPanelLayoutwithToolbarPanelListenerwhich supported 3 events for now :

/**
 * Called when a panel's position changes.
 */
public void onPanelSlide(Toolbar toolbar, View panelView, float slideOffset);

/**
 * Called when a panel has settled in a completely open state.
 * The panel is interactive at this point.
 */
public void onPanelOpened(Toolbar toolbar, View panelView);

/**
 * Called when a panel has settled in a completely closed state.
 */
public void onPanelClosed(Toolbar toolbar, View panelView);

項目主頁:http://www.baiduhome.net/lib/view/home/1449307851920

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!