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'
}


红色标记为导入的代码。

相关文章
|
存储 Java 数据库
Android数据存储:什么是Room Persistence Library?
Android数据存储:什么是Room Persistence Library?
257 0
|
开发工具 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
736 4
解决Android运行出现NDK at /Library/Android/sdk/ndk-bundle did not have a source.properties file
|
12月前
|
XML Android开发 UED
💥Android UI设计新风尚!掌握Material Design精髓,让你的界面颜值爆表!🎨
随着移动应用市场的蓬勃发展,用户对界面设计的要求日益提高。为此,掌握由Google推出的Material Design设计语言成为提升应用颜值和用户体验的关键。本文将带你深入了解Material Design的核心原则,如真实感、统一性和创新性,并通过丰富的组件库及示例代码,助你轻松打造美观且一致的应用界面。无论是色彩搭配还是动画效果,Material Design都能为你的Android应用增添无限魅力。
273 1
|
XML Android开发 UED
💥Android UI设计新风尚!掌握Material Design精髓,让你的界面颜值爆表!🎨
【7月更文挑战第28天】随着移动应用市场的发展,用户对界面设计的要求不断提高。Material Design是由Google推出的设计语言,强调真实感、统一性和创新性,通过模拟纸张和墨水的物理属性创造沉浸式体验。它注重色彩、排版、图标和布局的一致性,确保跨设备的统一视觉风格。Android Studio提供了丰富的Material Design组件库,如按钮、卡片等,易于使用且美观。
462 1
|
Android开发
[Android]DrawerLayout滑动菜单+NavigationView
[Android]DrawerLayout滑动菜单+NavigationView
133 0
|
Android开发 开发者 UED
Android Design Support Library初探-更新中
Android Design Support Library初探-更新中
204 0
|
XML Java 开发工具
Android5.0新特性-Material Design
Android5.0新特性-Material Design
129 0
|
2月前
|
安全 数据库 Android开发
在Android开发中实现两个Intent跳转及数据交换的方法
总结上述内容,在Android开发中,Intent不仅是活动跳转的桥梁,也是两个活动之间进行数据交换的媒介。运用Intent传递数据时需注意数据类型、传输大小限制以及安全性问题的处理,以确保应用的健壯性和安全性。
145 11