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

jopen 9年前

一个可以下滑显示出一个面板的Toolbar。这个library受Drawerlayout的启发,但有别于Drawerlayout显示左右抽屉,这个library会提供下拉toolbar显示一个面板的功能。

使用说明:

为了使用它你需要把ToolbarPanelLayout作为你的根布局:

<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>

关键在于设置panelId和toolbarId到ToolbarPanelLayout以便让它决定在哪里绘制面板

打开喝关闭面板可以调用:

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

锁定面板你可以使用ToolbarPanelLayout.setLockMode(int lockMode); 它支持3种模式:

/**   * 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;

你还可以为ToolbarPanelLayout设置ToolbarPanelListener,目前支持3种事件:

/**   * 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);

下载

你可以通过Gradle来获得:

compile 'com.nikoyuwono:toolbar-panel:0.1'


项目地址: https://github.com/NikoYuwono/ToolbarPanel