SlidingMenu是Android上的一个侧滑菜单,如下图所示:
今天主要记录的是SlidingMenu的使用,我们可以从Github上下载该开源项目,下载地址是:https://github.com/jfeinstein10/SlidingMenu
使用SlidingMenu的步骤比较简单,只需要如下几步:
1、在自己的项目中引入SlidingMenu的library
2、在Activity中加入如下代码:
slidingMenu = new SlidingMenu(this);
//设置滑动模式,从左侧滑出
slidingMenu.setMode(SlidingMenu.LEFT);
//设置菜单的View
slidingMenu.setMenu(menuView);
//将SlidingMenu加到当前的Activity上
slidingMenu.attachToActivity(this, SlidingMenu.LEFT);
//设置菜单滑出后,距离屏幕右侧的距离
slidingMenu.setBehindOffset(200);
//设置侧滑菜单的阴影
slidingMenu.setShadowDrawable(R.drawable.shadow);
//设置阴影区域的宽度
slidingMenu.setShadowWidthRes(R.dimen.sliding_menu_shadow_width);
//设置菜单滑出的模式,这里是在整个屏幕上滑动都可以让侧滑菜单显示
slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
//让菜单先显示或关闭
slidingMenu.toggle();
上面的代码里,为SlidingMenu设置了一个菜单布局文件,这个布局文件的内容如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:id="@+id/menu_list_view"
android:dividerHeight="0.8dp"
android:divider="#d3d3d3"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</LinearLayout>
就是一个ListView,用于显示菜单项
菜单项的初始化代码如下:
private void initMenuView(){
//获取侧滑菜单对应的View
menuView = LayoutInflater.from(this).inflate(R.layout.menu, null);
//获取侧滑菜单中的ListView
menuListView = (ListView) menuView.findViewById(R.id.menu_list_view);
//给菜单添加20个菜单项
menuItems = new String[20];
for(int i = 0; i < 20; i++){
menuItems[i] = "菜单" + (i + 1);
}
//给ListView设置adapter
menuListView.setAdapter(new ArrayAdapter<>(this,
android.R.layout.simple_list_item_1,
android.R.id.text1, menuItems));
//给ListView设置点击事件
menuListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String menuText = menuItems[position];
Toast.makeText(MainActivity.this, menuText, Toast.LENGTH_SHORT).show();
slidingMenu.toggle();
}
});
}
上面的代码基本上就完成了开始图中的侧滑菜单demo,下面给出AndroidStudio工程源代码。