Android Support Design Library之NavigationView(二)

简介: Android Support Design Library之NavigationView(二)

3.关联抽屉与标题栏


在继承自AppCompatActivity的Activity中,将标题栏设置显示为如下方式:


Toolbar toolbar=(Toolbar)findViewById(R.id.toolbar);
toolbar.setTitle("我是大头");
setSupportActionBar(toolbar);


那么将抽屉与标题栏关联要用到ActionBarDrawerToggle。其构造方法有五个参数,按顺序依次如下:


㈠上下文


㈡DrawerLayout


㈢toolbar


㈣打开标识


㈤关闭标识


四与五不显示,仅做标识用。关联抽屉与标题栏代码如下:


DrawerLayout drawerLayout=(DrawerLayout)findViewById(R.id.drawerlayout);
ActionBarDrawerToggle mDrawerToggle = new ActionBarDrawerToggle(this, drawerLayout, toolbar,
                R.string.drawer_open, R.string.drawer_close);
mDrawerToggle.syncState();//初始化状态
drawerLayout.setDrawerListener(mDrawerToggle);


使用setDrawerListener方式设置监听开关的打开与关闭。这样就实现了当按下菜单栏左侧按钮的时候,抽屉会打开。


4.设置NavigationView菜单选项的监听事件


该View给我们提供了菜单的监听回调方法:


setNavigationItemSelectedListener其需要实现的接口如下:


public interface OnNavigationItemSelectedListener {
        boolean onNavigationItemSelected(MenuItem var1);
    }


接口方法就一个,且参数就是菜单。下面我将实现其监听:


navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(MenuItem menuItem) {
                switch (menuItem.getItemId()){//获取菜单itemID
                    case R.id.lyj_menu_datou:
                        getSupportFragmentManager().beginTransaction().replace(R.id.linearlayout,new DrawerFragment("我是大头")).commit();
                        toolbar.setTitle("我是大头");
                        break;
                    case R.id.lyj_menu_xiaotou:
                        getSupportFragmentManager().beginTransaction().replace(R.id.linearlayout,new DrawerFragment("我是小头")).commit();
                        toolbar.setTitle("我是小头");
                        break;
                    case R.id.lyj_menu_chilun:
                        getSupportFragmentManager().beginTransaction().replace(R.id.linearlayout,new DrawerFragment("我是齿轮")).commit();
                        toolbar.setTitle("我是齿轮");
                        break;
                    default:
                        break;
                }
                menuItem.setChecked(true);//设置菜单选中
                drawerLayout.closeDrawers();//当选中菜单后,就要关闭抽屉
                return false;
            }
        });


根据菜单ID,设置fragment界面。最后效果图,就是博文开始的图片。


5.导入支持库


昨天讲解忘记了,需要配置如下信息,方能使用控件:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:23.0.1'
    compile 'com.android.support:design:23.0.1'
    compile 'com.android.support:recyclerview-v7:23.0.1'
    compile 'com.android.support:cardview-v7:23.0.1'
}


红色标记为导入的代码。

相关文章
|
6月前
|
存储 Java 数据库
Android数据存储:什么是Room Persistence Library?
Android数据存储:什么是Room Persistence Library?
119 0
|
2月前
|
XML Android开发 UED
💥Android UI设计新风尚!掌握Material Design精髓,让你的界面颜值爆表!🎨
随着移动应用市场的蓬勃发展,用户对界面设计的要求日益提高。为此,掌握由Google推出的Material Design设计语言成为提升应用颜值和用户体验的关键。本文将带你深入了解Material Design的核心原则,如真实感、统一性和创新性,并通过丰富的组件库及示例代码,助你轻松打造美观且一致的应用界面。无论是色彩搭配还是动画效果,Material Design都能为你的Android应用增添无限魅力。
65 1
|
3月前
|
开发工具 Android开发
解决Android运行出现NDK at /Library/Android/sdk/ndk-bundle did not have a source.properties file
解决Android运行出现NDK at /Library/Android/sdk/ndk-bundle did not have a source.properties file
166 4
解决Android运行出现NDK at /Library/Android/sdk/ndk-bundle did not have a source.properties file
|
4月前
|
XML Android开发 UED
💥Android UI设计新风尚!掌握Material Design精髓,让你的界面颜值爆表!🎨
【7月更文挑战第28天】随着移动应用市场的发展,用户对界面设计的要求不断提高。Material Design是由Google推出的设计语言,强调真实感、统一性和创新性,通过模拟纸张和墨水的物理属性创造沉浸式体验。它注重色彩、排版、图标和布局的一致性,确保跨设备的统一视觉风格。Android Studio提供了丰富的Material Design组件库,如按钮、卡片等,易于使用且美观。
143 1
|
6月前
|
Android开发
[Android]DrawerLayout滑动菜单+NavigationView
[Android]DrawerLayout滑动菜单+NavigationView
76 0
|
Android开发 开发者 UED
Android Design Support Library初探-更新中
Android Design Support Library初探-更新中
98 0
|
XML Java 开发工具
Android5.0新特性-Material Design
Android5.0新特性-Material Design
92 0
|
5天前
|
搜索推荐 Android开发 开发者
探索安卓开发中的自定义视图:打造个性化UI组件
【10月更文挑战第39天】在安卓开发的世界中,自定义视图是实现独特界面设计的关键。本文将引导你理解自定义视图的概念、创建流程,以及如何通过它们增强应用的用户体验。我们将从基础出发,逐步深入,最终让你能够自信地设计和实现专属的UI组件。
|
7天前
|
Android开发 Swift iOS开发
探索安卓与iOS开发的差异和挑战
【10月更文挑战第37天】在移动应用开发的广阔舞台上,安卓和iOS这两大操作系统扮演着主角。它们各自拥有独特的特性、优势以及面临的开发挑战。本文将深入探讨这两个平台在开发过程中的主要差异,从编程语言到用户界面设计,再到市场分布的不同影响,旨在为开发者提供一个全面的视角,帮助他们更好地理解并应对在不同平台上进行应用开发时可能遇到的难题和机遇。