zoukankan      html  css  js  c++  java
  • Android Material Design:NavigationView抽屉导航菜单

    需要添加的包:

    测试代码:

    package com.zzw.navigationview;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.support.design.widget.NavigationView;
    import android.support.design.widget.NavigationView.OnNavigationItemSelectedListener;
    import android.support.v4.view.GravityCompat;
    import android.support.v4.widget.DrawerLayout;
    import android.view.MenuItem;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.ImageView;
    
    public class MainActivity extends Activity {
    
        private DrawerLayout drawerLayout;
        private ImageView imageView;
        private NavigationView navigationView;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            initView();
            // navigationView选中Item处理
            handNavigationView();
            
            findViewById(R.id.button).setOnClickListener(new OnClickListener() {
                
                @Override
                public void onClick(View v) {
                    
                    drawerLayout.openDrawer(GravityCompat.START);  
                }
            });
        }
    
        private void handNavigationView() {
            navigationView
                    .setNavigationItemSelectedListener(new OnNavigationItemSelectedListener() {
    
                        // 用于辨别此前是否已有选中条目
                        MenuItem preMenuItem;
    
                        @Override
                        public boolean onNavigationItemSelected(MenuItem menuItem) {
                            // 首先将选中条目变为选中状态
                            // 即checked为true,后关闭Drawer,以前选中的Item需要变为未选中状态
                            if (preMenuItem != null)
                                preMenuItem.setChecked(false);
                            menuItem.setChecked(true);
                            drawerLayout.closeDrawers();
                            preMenuItem = menuItem;
    
                            // 不同item对应不同图片
                            switch (menuItem.getItemId()) {
                            case R.id.navigation_item1:
                                imageView.setImageResource(R.mipmap.bg_one);
                                break;
                            case R.id.navigation_item2:
                                imageView.setImageResource(R.mipmap.bg_two);
                                break;
                            case R.id.navigation_item3:
                                imageView.setImageResource(R.mipmap.bg_three);
                                break;
                            case R.id.navigation_sub_item1:
                                imageView.setImageResource(R.mipmap.bg_four);
                                break;
                            case R.id.navigation_sub_item2:
                                imageView.setImageResource(R.mipmap.bg_five);
                                break;
                            case R.id.navigation_sub_item3:
                                imageView.setImageResource(R.mipmap.bg_default);
                                break;
                            }
                            return true;
                        }
                    });
        }
    
        private void initView() {
            drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
            imageView = (ImageView) findViewById(R.id.image);
            navigationView = (NavigationView) findViewById(R.id.navigation);
        }
    
    }

    activity_main.xml:

    <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/drawer_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true" >
    
        <!-- 主界面 -->
    
        <RelativeLayout
            android:id="@+id/parent_layout"
            android:layout_width="match_parent"
            android:layout_height="match_parent" >
    
            <ImageView
                android:id="@+id/image"
                android:layout_width="match_parent"
                android:layout_height="400dp"
                android:layout_centerInParent="true"
                android:padding="5dp"
                android:src="@mipmap/bg_default" />
    
            <Button
                android:id="@+id/button"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_centerHorizontal="true"
                android:paddingBottom="5dip"
                android:text="点击" />
    
            <!-- app:itemIconTint 设置菜单图标颜色   app:itemTextColor设置菜单字体颜色  -->
        </RelativeLayout>
    
        <android.support.design.widget.NavigationView
            android:id="@+id/navigation"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="start"
            app:headerLayout="@layout/drawer_header"
            app:itemIconTint="#2196F3"
            app:itemTextColor="#3F51B5"
            app:menu="@menu/drawer_menu" >
        </android.support.design.widget.NavigationView>
    
    </android.support.v4.widget.DrawerLayout>

    drawer_header.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="180dp"
        android:background="@mipmap/bg_header"
        android:paddingBottom="15dp"
        android:paddingLeft="20dp" >
    
        <ImageView
            android:id="@+id/photo"
            android:layout_width="80dp"
            android:layout_height="80dp"
            android:layout_above="@+id/desc"
            android:layout_marginBottom="20dp"
            android:src="@mipmap/photo" />
    
        <TextView
            android:id="@+id/desc"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_marginBottom="2dp"
            android:text="www.cnblogs.com/zzw1994"
            android:textColor="#ffffff"
            android:textSize="20sp"
            android:textStyle="bold" />
    
    </RelativeLayout>

    drawer_menu.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android" >
    
        <group>
            <item
                android:id="@+id/navigation_item1"
                android:checkable="true"
                android:icon="@mipmap/icon_hot"
                android:title="热门图片"/>
            <item
                android:id="@+id/navigation_item2"
                android:checkable="true"
                android:icon="@mipmap/icon_people"
                android:title="联系人"/>
            <item
                android:id="@+id/navigation_item3"
                android:checkable="true"
                android:icon="@mipmap/icon_photos"
                android:title="图库"/>
        </group>
    
        <item
            android:id="@+id/navigation_sub"
            android:title="新增功能">
            <menu>
                <item
                    android:id="@+id/navigation_sub_item1"
                    android:checkable="true"
                    android:icon="@mipmap/icon_local"
                    android:title="地图导航"/>
                <item
                    android:id="@+id/navigation_sub_item2"
                    android:checkable="true"
                    android:icon="@mipmap/icon_event"
                    android:title="最近热门"/>
                <item
                    android:id="@+id/navigation_sub_item3"
                    android:checkable="true"
                    android:icon="@mipmap/icon_communities"
                    android:title="社交圈子"/>
            </menu>
        </item>
    
    </menu>

    注意主题:

    <style name="DemoTheme" parent="Theme.AppCompat.Light.NoActionBar">
        </style>
    <application
            
            android:theme="@style/DemoTheme" >
           
        </application>
  • 相关阅读:
    odoo10学习笔记十二:web controller
    odoo10学习笔记十一:视图综述
    odoo10学习笔记十:Actions
    odoo10学习笔记九:Odoo10 API
    odoo10学习笔记八:qweb引擎
    knockoutjs data-bind 声明式绑定整理
    使用mpvue开发小程序教程(六)
    使用mpvue开发小程序教程(五)
    使用mpvue开发小程序教程(四)
    使用mpvue开发小程序教程(三)
  • 原文地址:https://www.cnblogs.com/zzw1994/p/5069609.html
Copyright © 2011-2022 走看看