標籤:
受到slidingMenu的啟發android增加了DrawerLayout來實現滑動菜單
DrawerLayout是繼承自ViewGroup,可以在其中放子view。DrawerLayout中分為主內容區和菜單地區
使用方法如下
1.和普通的LinearLayout一樣
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent"> <FrameLayout android:id="@+id/content_frame" android:layout_width="match_parent" android:layout_height="match_parent" /> <ListView android:id="@+id/left_drawer" android:layout_width="240dp" android:layout_height="match_parent" android:layout_gravity="start" android:choiceMode="singleChoice" android:layout_gravity="left" android:divider="@android:color/transparent" android:dividerHeight="0dp" android:background="#111"/></android.support.v4.widget.DrawerLayout>
fragment是主要內容,不一定要用fragment,任何view都可以,listview是菜單,同理任何view也都可以。
注意:(1)主內容布局要放在菜單布局前面,可以協助DrawerLayout來識別哪些是菜單布局,哪些是內容布局
(2)android:choiceMode=”singleChoice”是聲明這是菜單布局
android:layout_gravity=”left”是在左側滑,這個值可以更改
2菜單的顯示與隱藏狀態都有相應的監聽介面調用,可以添加自己想實現的邏輯
mDrawerToggle = new ActionBarDrawerToggle( this, mDrawerLayout, R.drawable.ic_drawer, R.string.drawer_open, R.string.drawer_close ) { public void onDrawerClosed(View view) { } public void onDrawerOpened(View drawerView) { }};mDrawerLayout.setDrawerListener(mDrawerToggle);
3、在代碼中自動控制功能表的開啟與關閉
DrawerLayout.closeDrawer方法用於隱藏側邊菜單,DrawerLayout.openDrawer方法用於展開側邊菜單
4、有的時候我們只想讓點擊某個按鍵顯示菜單而不想讓一滑動就出現菜單,那麼這個時候就要屏蔽掉滑動的功能
mDrawer_layout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED); //關閉手勢滑動
mDrawer_layout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED); //開啟手勢滑動
android內建DrawerLayout滑動菜單的使用