侧滑栏的添加:
什么是侧滑栏?大家应该很清楚就类似QQ,打开主界面从手机最左侧向右一划就会出来侧滑,以下图为例向大家简单介绍侧滑栏的使用:
1.布局里的侧滑控件:切记将侧换控件NavigationView放在DrawerLayout中
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/windowBackground">
<!--左侧导航菜单-->
<android.support.design.widget.NavigationView
android:id="@+id/navigation_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="@color/windowBackground"
app:headerLayout="@layout/navigation_header"
app:menu="@menu/drawer" /> <!--menu里是第二条的文件名,即侧滑菜单的布局文件-->
</android.support.v4.widget.DrawerLayout>
2.接下来要写好侧滑后的菜单界面,添加item(文件名:drawer.xml)
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item
android:id="@+id/navigation_item_user"
android:icon="@drawable/account"
android:title="用户管理" />
<item
android:id="@+id/navigation_item_logout"
android:icon="@drawable/exit_to_app"
android:title="退出" />
<!--随意添加菜单选项-->
</group>
</menu>
3.Java文件:
private DrawerLayout mDrawerLayout;//侧边菜单视图
private NavigationView mNavigationView;//侧边菜单项
private MenuItem mPreMenuItem;
这里是写出了菜单里所有item点击事件,你可以随意自定义,我这里只是点击之后跳转到其他界面而已
ps:在主函数里还要设置一下侧滑点击图标,如下红色部分,自己设置即可
侧滑可以实现点击图标和直接右划两种方式
private void setNavigationViewItemClickListener() {
//设置侧滑监听事件
mNavigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
//区别每一个item做的监听事件
@Override
public boolean onNavigationItemSelected(MenuItem item) {
if (null != mPreMenuItem) {
mPreMenuItem.setChecked(false);
}
//item.getItemId()是被点击item的ID
switch (item.getItemId()) {
case R.id.navigation_item_user:
Intent intent1=new Intent(MainActivity.this,change_password.class);
startActivity(intent1);
break;
case R.id.navigation_item_addbook:
Intent intent2=new Intent(MainActivity.this,pingjia.class);
startActivity(intent2);
break;
default:
break;
}
item.setChecked(true);
//关闭抽屉即关闭侧换此时已经跳转到其他界面,自然要关闭抽屉
mDrawerLayout.closeDrawer(Gravity.LEFT);
mPreMenuItem = item;
return false;
}
});
}
其实侧滑很简单,没有什么技术含量,我也是初学者,大神勿喷,就是想分享一下!!!