DrawerLayout的使用
2016-01-08 22:49
537 查看
DrawerLayout 是v4的扩展组件,具体使用步骤如下:
1、布局文件内容如下:
注:
2、初始化DrawerLayout组件
3、在Activity的onCreate(Bundle savedInstanceState)方法中调用
4、想打开或者关闭左侧菜单的调用下面的方法
5、关闭手势滑动
6、打开手势滑动
1、布局文件内容如下:
<?xml version="1.0" encoding="utf-8"?> <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"> <!--主布局--> <RelativeLayout android:id="@+id/content" android:layout_width="match_parent" android:layout_height="match_parent"> </RelativeLayout> <!--左侧滑动菜单--> <RelativeLayout android:id="@+id/drawer_left_menu" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="start"> </RelativeLayout> </android.support.v4.widget.DrawerLayout>
注:
android:layout_gravity="start"这个属性是必须的。
2、初始化DrawerLayout组件
DrawerLayout mDrawerLayout; RelativeLayout mDrawerLeftMenu; ActionBarDrawerToggle mDrawerToggle; private void setupDrawerLayout() { mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); mDrawerLeftMenu = (RelativeLayout) findViewById(R.id.drawer_left_menu); mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, R.string.drawer_open, R.string.drawer_close) { @Override public void onDrawerClosed(View view) { super.onDrawerClosed(view); } @Override public void onDrawerOpened(View drawerView) { super.onDrawerOpened(drawerView); } @Override public void onDrawerSlide(View drawerView, float slideOffset) { super.onDrawerSlide(drawerView, slideOffset); } @Override public void onDrawerStateChanged(int newState) { super.onDrawerStateChanged(newState); } }; mDrawerLayout.setDrawerListener(mDrawerToggle); mDrawerToggle.syncState(); }
3、在Activity的onCreate(Bundle savedInstanceState)方法中调用
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); setupDrawerLayout(); }
4、想打开或者关闭左侧菜单的调用下面的方法
public void toggleLeftMenu() { if (mDrawerLayout.isDrawerOpen(mDrawerLeftMenu)) { mDrawerLayout.closeDrawer(mDrawerLeftMenu); } else { mDrawerLayout.openDrawer(mDrawerLeftMenu); } }
5、关闭手势滑动
public void closeDrawerGestureSlide() { mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED); }
6、打开手势滑动
public void openDrawerGestureSlide() { mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED); }
相关文章推荐
- libusb 块传输 同步传输例程
- 微信开发对接
- mysql → 多表查询
- 你真的了解Java静态内部类吗
- 深入理解java虚拟机(五)
- 【php】empty()详解
- 分布式锁
- (六)Android中Service通信
- 输出 一维数组中最大的数+数组遍历
- 等式约束QP命题的求解(Solving equality-constrained QP)
- <LeetCode OJ> 326. Power of Three
- 微信支付、公众号支付、微信APP支付教程
- 【数组】Minimum Path Sum
- java:IO流学习小结
- 正则表达式速查
- 算法导论8:数据结构——栈 2016.1.8
- Linux软件安装之源码安装
- 【ITOO 2】.NET 动态建库建表:使用SQL字符串拼接方式
- iOS数据存储的三种方式
- iOS socket编程