效果演示
演示
NavigationVIEw的布局文件
@H_403_14@<?xml version="1.0" enCoding="utf-8"?><androID.support.v4.Widget.DrawerLayout androID:ID="@+ID/drawer_layout" xmlns:androID="http://schemas.androID.com/apk/res/androID" xmlns:app="http://schemas.androID.com/apk/res-auto" androID:layout_wIDth="match_parent" androID:layout_height="match_parent" androID:fitsSystemwindows="true"> <FrameLayout androID:ID="@+ID/container" androID:layout_wIDth="match_parent" androID:layout_height="match_parent" /> <androID.support.design.Widget.NavigationVIEw androID:ID="@+ID/navigation_vIEw" androID:layout_wIDth="320dp" androID:layout_height="match_parent" androID:layout_gravity="start" androID:background="@color/navigation_background_light" androID:overScrollMode="never" app:headerLayout="@layout/layout_navigation_header" app:menu="@menu/navigation_main" /></androID.support.v4.Widget.DrawerLayout>
下面才是关键
1、app:headerLayout="@layout/layout_navigation_header"
这条代码的作用就是设置导航抽屉的样子
@H_403_14@<?xml version="1.0" enCoding="utf-8"?><FrameLayout androID:ID="@+ID/header_container" xmlns:androID="http://schemas.androID.com/apk/res/androID" xmlns:app="http://schemas.androID.com/apk/res-auto" androID:layout_wIDth="match_parent" androID:layout_height="200dp" androID:clickable="true"> <FrameLayout androID:layout_wIDth="match_parent" androID:layout_height="match_parent" androID:background="@color/colorPrimary"> <ImageVIEw androID:ID="@+ID/background_image_vIEw" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:layout_gravity="center|end|bottom" androID:clickable="true" androID:src="@drawable/home_menu_bg_click" androID:tint="@color/nav_head_image_background" /> </FrameLayout> <relativeLayout androID:layout_wIDth="match_parent" androID:layout_height="match_parent" androID:orIEntation="horizontal" androID:paddingtop="@dimen/activity_vertical_margin"> <tingyuxuan.hosition.zxyoyo.com.tingyuxuan.vIEw.design.circleimageVIEw androID:ID="@+ID/user_avatar_vIEw" androID:layout_wIDth="74dp" androID:layout_height="74dp" androID:layout_gravity="start|top" androID:layout_marginEnd="16dp" androID:layout_marginStart="@dimen/activity_vertical_margin" androID:layout_margintop="20dp" androID:src="@drawable/ico_user_default" app:border_color="@androID:color/white" app:border_wIDth="1dp" /> <linearLayout androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:layout_alignParentEnd="true" androID:layout_marginEnd="20dp" androID:layout_margintop="20dp" androID:orIEntation="horizontal"> <ImageVIEw androID:ID="@+ID/iv_head_noftiy" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:src="@drawable/ic_navigation_header_notification" /> </linearLayout> <linearLayout androID:ID="@+ID/subTitle_layout" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:layout_below="@+ID/user_avatar_vIEw" androID:layout_gravity="bottom" androID:layout_marginStart="10dp" androID:background="?attr/selectableItemBackground" androID:orIEntation="vertical" androID:paddingtop="5dp"> <linearLayout androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:gravity="center" androID:orIEntation="horizontal" androID:padding="5dp"> <TextVIEw androID:ID="@+ID/user_name" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:text="@string/app_name" androID:textcolor="@color/white" androID:textSize="16sp" /> <TextVIEw androID:ID="@+ID/user_level" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:layout_marginStart="3dp" androID:background="@drawable/white_border" androID:text="LV1" androID:gravity="center" androID:textcolor="@color/white" androID:textSize="10sp" /> </linearLayout> <TextVIEw androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:layout_margin="3dp" androID:background="@drawable/round_wihte_bg" androID:padding="3dp" androID:text="@string/app_name" androID:textcolor="@color/nav_head_roung_text_background" androID:textSize="10sp" /> <TextVIEw androID:text="@string/header_introduce" androID:ID="@+ID/user_other_info" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:padding="3dp" androID:textcolor="@color/white" androID:textSize="14sp" /> </linearLayout> </relativeLayout></FrameLayout>
2、app:menu="@menu/navigation_main"
这条代码的作用是设置导航抽屉中每个Item
@H_403_14@<?xml version="1.0" enCoding="utf-8"?><menu xmlns:androID="http://schemas.androID.com/apk/res/androID"> <group androID:checkableBehavior="single"> <item androID:ID="@+ID/item_home" androID:checked="true" androID:icon="@drawable/ic_home_black_24dp" androID:title="@string/item_home" /> <item androID:ID="@+ID/item_serach" androID:icon="@drawable/ic_action_search" androID:title="图书搜索" /> </group> <group androID:ID="@+ID/group_user" androID:checkableBehavior="single"> <item androID:ID="@+ID/item_favourite" androID:icon="@drawable/ic_star_black_24dp" androID:title="@string/item_favourite" /> <item androID:ID="@+ID/item_history" androID:icon="@drawable/ic_history_black_24dp" androID:title="@string/item_history" /> </group> <group androID:checkableBehavior="single"> <item androID:ID="@+ID/item_settings" androID:icon="@drawable/ic_settings_black_24dp" androID:title="@string/item_settings" /> <item androID:ID="@+ID/item_manager" androID:icon="@drawable/ic_manager" androID:title="@string/item_manager" /> <item androID:ID="@+ID/item_exit" androID:icon="@drawable/ic_exit_to_app_black_24dp" androID:title="@string/item_exit" /> </group></menu>
之后就是在Activity中具体引用了
@H_403_14@/*初始化NavigationVIEw里面的内容*/ private voID initNavigationVIEw() { mNavigationVIEw.setNavigationItemSelectedListener(this); VIEw headerVIEw = mNavigationVIEw.getheaderVIEw(0); circleimageVIEw mUserAvatarVIEw = (circleimageVIEw) headerVIEw.findVIEwByID(R.ID.user_avatar_vIEw); TextVIEw mUsername = (TextVIEw) headerVIEw.findVIEwByID(R.ID.user_name); TextVIEw mUserLevel = (TextVIEw) headerVIEw.findVIEwByID(R.ID.user_level); String name = getSharedPreferences("user", MODE_PRIVATE).getString("username", "听雨喧"); userLevel = DbUtil.getUserLevel(this, name); mUserLevel.setText("LV"+ userLevel); //设置名字 mUsername.setText(name); }
@H_403_14@/*重写onNavigationItemSelected方法,为每个点击item设置不同的效果*/ @OverrIDe public boolean onNavigationItemSelected(@NonNull MenuItem item) { switch (item.getItemID()){ case R.ID.item_exit: //切换帐号 getSharedPreferences("user", MODE_PRIVATE).edit().putString("username","").commit(); startActivity(new Intent(this,LoginActivity.class)); finish(); break; //主页 case R.ID.item_home: toggleDrawer(); changeFragmentIndex(item, 0); boolean update = getSharedPreferences("book", MODE_PRIVATE).getBoolean("update", false); //System.out.println("-0-----------------dianjile--item_home:"+update); if(update){ homeFragment.reFreshData(); } break; //管理界面 case R.ID.item_manager: toggleDrawer(); if(userLevel<2){ ToastUtil.showLong(this,"抱歉,只有管理员才能进入"); }else { changeFragmentIndex(item, 1); } break; //收藏图书界面 case R.ID.item_favourite: toggleDrawer(); changeFragmentIndex(item, 2); break; //设置界面 case R.ID.item_settings: toggleDrawer(); changeFragmentIndex(item,3); break; case R.ID.item_history: toggleDrawer(); changeFragmentIndex(item, 4); break; case R.ID.item_serach: toggleDrawer(); changeFragmentIndex(item,5); break; } return false; }总结
以上是内存溢出为你收集整理的android中NavigationView(导航抽屉)全部内容,希望文章能够帮你解决android中NavigationView(导航抽屉)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)