android中NavigationView(导航抽屉)

android中NavigationView(导航抽屉),第1张

概述效果演示演示NavigationView的布局文件<?xmlversion="1.0"encoding="utf-8"?><android.support.v4.widget.DrawerLayoutandroid:id="@+id/drawer_layout"xmlns:android="http://schemas.android.com/apkes/android&quo

效果演示

<iframe allowfullscreen="true" data-mediaembed="bilibili" frameborder="0" ID="J2PFUKUM-1586765521395" src="https://player.bilibili.com/player.HTML?aID=625228598"></iframe>

演示


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(导航抽屉)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1062094.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存