可以下滑显示出一个面板的Android Toolbar:ToolbarPanel
jopen
9年前
ToolbarPanel 一个可以下滑显示出一个面板的Toolbar。这个library受Drawerlayout的启发,但有别于Drawerlayout显示左右抽屉,这个library会提供下拉toolbar显示一个面板的功能。
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);