1. 程式人生 > >一個可以下滑顯示出一個面板的Toolbar。這個library受Drawerlayout的啟發,但有別於Drawerlayout顯示左右抽屜,這個library會提供下拉toolbar顯示一個面板的功

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

為了使用它你需要把ToolbarPanelLayout作為你的根佈局:

  1. <com.nikoyuwono.toolbarpanel.ToolbarPanelLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  2. xmlns:app="http://schemas.android.com/apk/res-auto"
  3. android:id="@+id/sliding_down_toolbar_layout"
  4. android:layout_width="match_parent"
  5. android:layout_height="match_parent"
  6. app:panelId="@+id/panel"
  7. app:toolbarId="@+id/toolbar">
  8. <RelativeLayout
  9. android:id="@+id/content_container"
  10. android:layout_width="match_parent"
  11. android:layout_height="match_parent">
  12.         //Your content here
  13. </RelativeLayout>
  14. <android.support.v7.widget.Toolbar
  15. android:id="@+id/toolbar"
  16. android:layout_width
    ="match_parent"
  17. android:layout_height="wrap_content"
  18. android:background="@color/color_primary"/>
  19. <RelativeLayout
  20. android:id="@+id/panel"
  21. android:layout_width="match_parent"
  22. android:layout_height="match_parent">
  23.         //Your panel content here
  24. </RelativeLayout>
  25. </com.nikoyuwono.toolbarpanel.ToolbarPanelLayout>

關鍵在於設定panelId和toolbarId到ToolbarPanelLayout以便讓它決定在哪裡繪製面板

開啟喝關閉面板可以呼叫:

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

鎖定面板你可以使用ToolbarPanelLayout.setLockMode(int lockMode); 它支援3種模式:

  1. /**
  2.  * The drawer is unlocked.
  3.  */
  4. publicstaticfinalint LOCK_MODE_UNLOCKED =0;
  5. /**
  6.  * The drawer is locked closed. The user may not open it, though the app may open it
  7.  * programmatically.
  8.  */
  9. publicstaticfinalint LOCK_MODE_LOCKED_CLOSED =1;
  10. /**
  11.  * The drawer is locked open. The user may not close it, though the app may close it
  12.  * programmatically.
  13.  */
  14. publicstaticfinalint LOCK_MODE_LOCKED_OPEN =2;

你還可以為ToolbarPanelLayout設定ToolbarPanelListener,目前支援3種事件:

  1. /**
  2.  * Called when a panel's position changes.
  3.  */
  4. publicvoid onPanelSlide(Toolbar toolbar,View panelView,float slideOffset);
  5. /**
  6.  * Called when a panel has settled in a completely open state.
  7.  * The panel is interactive at this point.
  8.  */
  9. publicvoid onPanelOpened(Toolbar toolbar,View panelView);
  10. /**
  11.  * Called when a panel has settled in a completely closed state.
  12.  */
  13. publicvoid onPanelClosed(Toolbar toolbar,View panelView);

下載

你可以通過Gradle來獲得:

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