可以下滑显示出一个面板的Android Toolbar:ToolbarPanel

jopen 9年前

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.open-open.com/lib/view/home/1449307851920