首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在一个活动中使用两个NavigationView,并在AppBarLayout中使用两个单独的按钮打开和关闭它们

首先,NavigationView是Android Material Design库中的一个组件,用于创建侧边栏导航菜单。它可以提供导航功能和展示应用的不同页面或功能。

在一个活动中使用两个NavigationView,可以通过以下步骤实现:

  1. 在布局文件中添加两个NavigationView组件,并设置它们的id,例如navView1和navView2。
代码语言:txt
复制
<com.google.android.material.navigation.NavigationView
    android:id="@+id/navView1"
    ... />

<com.google.android.material.navigation.NavigationView
    android:id="@+id/navView2"
    ... />
  1. 在活动的代码中,找到AppBarLayout中的两个按钮,并设置它们的点击事件。
代码语言:txt
复制
Button button1 = findViewById(R.id.button1);
Button button2 = findViewById(R.id.button2);

button1.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        // 打开第一个NavigationView
        DrawerLayout drawerLayout = findViewById(R.id.drawerLayout);
        NavigationView navView1 = findViewById(R.id.navView1);
        drawerLayout.openDrawer(navView1);
    }
});

button2.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        // 打开第二个NavigationView
        DrawerLayout drawerLayout = findViewById(R.id.drawerLayout);
        NavigationView navView2 = findViewById(R.id.navView2);
        drawerLayout.openDrawer(navView2);
    }
});
  1. 最后,需要在活动的布局文件中添加一个DrawerLayout组件,并将AppBarLayout和两个NavigationView放在其中。
代码语言:txt
复制
<androidx.drawerlayout.widget.DrawerLayout
    android:id="@+id/drawerLayout"
    ... >

    <com.google.android.material.appbar.AppBarLayout
        ... >

        <!-- AppBarLayout中的其他组件 -->

    </com.google.android.material.appbar.AppBarLayout>

    <com.google.android.material.navigation.NavigationView
        android:id="@+id/navView1"
        ... />

    <com.google.android.material.navigation.NavigationView
        android:id="@+id/navView2"
        ... />

</androidx.drawerlayout.widget.DrawerLayout>

这样,当点击按钮1时,第一个NavigationView会从左侧滑出显示;当点击按钮2时,第二个NavigationView会从左侧滑出显示。用户可以在NavigationView中进行导航和选择不同的页面或功能。

对于腾讯云相关产品和产品介绍链接地址,可以根据具体需求选择适合的产品。腾讯云提供了丰富的云计算服务,包括云服务器、云数据库、云存储等。可以访问腾讯云官网(https://cloud.tencent.com/)了解更多信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Material Design 实战 之第四弹 —— 卡片布局

卡片式布局也是MaterialsDesign中提出的一个新的概念,它可以让页面中的元素看起来就像在卡片中一样,并且还能拥有圆角和投影,下面我们就开始具体学习一下。...中定义了一个数组,数组存放多个Fruit的实例,每个实例代表一种水果; 在initFruits()方法中,先清空fruitList中的数据,再使用一个随机函数,从刚才定义的Fruit数组中随机挑选一个水果放入到...AppBarLayout ---- 首先RecyclerView会把Toolbar给遮挡住的原因: 由于RecyclerView和Toolbar都是放置在CoordinatorLayout中的, 而前面已经说过...这里准备使用DesignSupport库中提供的另外一个工具——AppBarLayout。...接下来使用AppBarLayout两步解决前面的覆盖问题: 第一步将Toolbar嵌套到AppBarLayout中, 第二步给RecyclerView指定一个布局行为(app:layout_behavior

2.1K10
  • Material Design 实战 之第二弹——滑动菜单详解&实战

    DrawerLayout 控件用处:实现滑动菜单 1.1 首先它是一个布局,在布局中允许放入两个直接子控件, 第一个子控件是主屏幕中显示的内容;...实际上,Toolbar最左侧的这个按钮就叫作HomeAsUp按钮,它默认的图标是一个返回的箭头,含义是返回上一个活动。...在开始使用NavigationView之前,我们还需要提前准备好两个东西:menu和headerLayout。...menu是用来在NavigationView中显示具体的菜单项的; headerLayout则是用来在NavigationView中显示头部布局的。...另外两个TextView分别用于显示用户名和邮箱地址,它们都用到了一些RelativeLayout的定位属性; 3/4.使用NavigationView 现在menu和headerLayout都准备好了

    96230

    1. Jetpack源码解析---看完你就知道Navigation是什么了?

    基本使用 虽然在之前的文章中已经很详细的介绍了Navigation,但是这里也简单的叙述一下我在项目中的具体使用: 2.1 Navigation+DrawerLayout+ToolBar 我们可以通过使用...homeFragment,下面还有一个codeFragment,其实这两个fragment也就是对应着在menu中的两个菜单,同时也对应我们侧边栏中的一个首页和一个代码页, <item...、setupWithNavController进行关联绑定 到此,我们的基本配置就结束了,可以看到我们drawerlayout中的首页和代码按钮点击会切换对应的fragment,同时toolbar的汉堡按钮和返回按钮也会自动切换...没错这就是一个一个的Action,当你手动将两个Fragment进行连线后,在xml布局里面会对应生成一个标签,例如: 在xml布局中设置的那一个。

    2.6K30

    1. Jetpack源码解析---看完你就知道Navigation是什么了?

    基本使用 虽然在之前的文章中已经很详细的介绍了Navigation,但是这里也简单的叙述一下我在项目中的具体使用: 2.1 Navigation+DrawerLayout+ToolBar 我们可以通过使用...homeFragment,下面还有一个codeFragment,其实这两个fragment也就是对应着在menu中的两个菜单,同时也对应我们侧边栏中的一个首页和一个代码页, <item...、setupWithNavController进行关联绑定 到此,我们的基本配置就结束了,可以看到我们drawerlayout中的首页和代码按钮点击会切换对应的fragment,同时toolbar的汉堡按钮和返回按钮也会自动切换...没错这就是一个一个的Action,当你手动将两个Fragment进行连线后,在xml布局里面会对应生成一个标签,例如: 在xml布局中设置的那一个。

    2.2K20

    1. Android_Jetpack组件---Naviagtion源码解析

    基本使用 虽然在之前的文章中已经很详细的介绍了Navigation,但是这里也简单的叙述一下我在项目中的具体使用: 2.1 Navigation+DrawerLayout+ToolBar 我们可以通过使用...homeFragment,下面还有一个codeFragment,其实这两个fragment也就是对应着在menu中的两个菜单,同时也对应我们侧边栏中的一个首页和一个代码页, <item...、setupWithNavController进行关联绑定 到此,我们的基本配置就结束了,可以看到我们drawerlayout中的首页和代码按钮点击会切换对应的fragment,同时toolbar的汉堡按钮和返回按钮也会自动切换...没错这就是一个一个的Action,当你手动将两个Fragment进行连线后,在xml布局里面会对应生成一个标签,例如: 在xml布局中设置的那一个。

    2.2K10

    Android编程之Navigation项目迁移AndroidX踩坑记录

    在项目迁移AndroidX的过程中遇到一些问题,特别是Navigation抽屉页面迁移的过程中遇到一些问题,跟着网上的教程走完了全程,却总是闪退,原因直指xml布局文件。...选择菜单上的ReFactor->Refactor to AndroidX...即可 AndroidX需要使用最新的Android sdk,打开Android Studio的设置找到Android SDK...一般的项目经过以上的步骤就完成了,但是在我迁移Navigation时候发现还是无法运行,经过不断的排查发现在xml文件中使用的所有support型控件也需要替换,下面记录下我替换的控件。...再见,android.support 不推荐使用androidx.test.InstrumentationRegistry AndroidX官方新旧对比 一个神奇的控件——Android CoordinatorLayout...与Behavior使用指南 Android框架之路——NavigationView的使用(结合ToolBar) --------------------- Author: Frytea Title

    1.6K20

    Android5.0和6.0之后新增的控件说明

    为此,博主初步整理了Android在5.0和6.0之后的新增控件,及其对应的说明博文,给大家提供一个可资学习和借鉴的索引。...,在项目中使用的时候,可分为三大类: 1、第一类是内核提供的控件,位于SDK的android.jar中。...比如水波图形RippleDrawable和矢量图形VectorDrawable,这两个控件在Android5.0之后的系统内核中提供,所以只有系统版本不低于5.0的手机才能使用它们,运行4....*系统的手机是无法正常调用这两个控件的。 2、第二类是v4兼容库提供的控件,位于SDK的android-support-v4.jar中。...3、第三类是v7兼容库和design库,它们有各自的库工程,开发者要在App工程中手工导入用到的兼容库。 v7与design库导入App工程后,编译出来的App即可兼容4.*的系统。

    1.3K20

    再不迁移到Material Design Components 就out啦

    它使用AppCompat主题,设计支持库中的小部件(包括具有自定义背景的按钮)以及需要迁移的各种其他元素。...但是,升级后,您可能会注意到某些控件颜色和其他属性的某些意外更改。 ? 在上面的示例中,按钮发生了变化、文本和图标的颜色发生了变化。FAB 现在变成了蓝绿色,并且文本字段看起来完全不同。不用担心。...下面我们通过一些常见的迁移方案来了解一下这些问题 文字栏位改变 在 MDC 中,文字字段默认样式发生了改变。改进版本是经过用户调查研究的。 ? 我们建议您使用这个版本,来提高可用性和可配置项性。...下面这几种情况应该考虑 在布局中写的控件如果有对应的 MDC 控件的话,直接使用 MDC 控件 任何的风格,默认风格和默认风格属性应该改变成 MDC 版本 在编程中或者自定义类的父级类使用的任何控件都应该为...*样式和相应的textAppearance*主题属性,它们替代了现有的AppCompat /框架样式。 ? MDC小部件使用这些属性来设置文本样式。

    3.2K30

    导航组件概览 | MAD Skills

    您还需要在用户点击设备返回按钮和 ActionBar 的向上按钮时正确地处理返回和向上操作。有时候不同应用中处理这两个相关而又不完全相同的操作会产生一些不一致的结果。...IDE 加载完毕该应用之后,打开导航资源文件 nav_graph.xml 并在 Design 模式 (此外还有 Code 与 Split 模式) 下查看。您会看到当前应用导航图的样子。...Basic Activity 模板可以创建两个目的地 点选这些目的地,您可以从右边的属性表单中查看它们的相关信息,比如下图中展示了这个目的地使用了 Fragment 类。 ?...在之前图表的导航图中,您还可以发现两个目的地之间的箭头,它们定义了导航图中可能的导航操作 (action)。...导航部件 我们已经在层级结构中查看了几个 UI 组件,以及它们彼此之间是如何关联的,接下来我想介绍一下几个重要部件,导航组件正是利用它们来在目的地之间实现导航。

    1.7K30

    Material Design 在 Android 中的应用

    在分享时能将每个知识点都有个透彻而又完整的分析,不要追求速度。实话说这次分享确实给我带了不少的收获,相信在下次分享中能够有一个满意的表现。...跟随着15年Android 5.0的问世,谷歌设计师们还给我们带来的一系列的具有Material Design风格控件。这些控件被统一放置在support design库中,以供开发中使用。...窗口背景颜色 navigationBarColor 导航栏颜色 通过在styles中配置颜色来定制您的主题,并在AndroidManifest中应用。...setOnNavigationItemSelectedListener {} 3、DrawerLayout、NavigationView 和BottomNavigationView相对的,不得不介绍一下...Toolbar作为早期Android中ActionBar的替代品,定制性和操作性挺高了不少。使用的时候需要设置NoActionBar的主题。

    1.3K20

    Android自带抽屉布局及NavigationView的使用

    获取NavigationView的中的控件出现空指针异常 我们在Navigation Drawer Activity中获取控件,第一反应就是直接在onCreateView里调用findViewById,...问题引起其实非常简单,是因为在activity刚创建的时候,Dawer其实是没有打开的,所以布局没有初始化,自然也不能找到其中的空间。...我们首先了解一下NavigationView的使用,新建一个抽屉活动后,我们可以看到主界面的布局文件是这样的 的布局了~可以看到它有两个属性app:headerLayout和app:menu 其实这两个属性后面就分别是上图中蓝色背景部分的抽屉头和下面的菜单。...操作1: 前面提到的获取不到控件的方法,可以在onCreate方法中这样来获取 View headerLayout = navigationView.inflateHeaderView(R.layout.nav_header_main

    1.3K20

    Android材料设计Material Design 开篇前言

    零、前言 虽然网上已经有了很多Material Design系列的文章,但是动眼和动手是有本质区别的 虽然有很好的文章,但不太系统,既然要总结Material Design,那就写一个系列吧,可以说...,而不是谷歌闲着没事弄个东西刁难我们 所有的代码都我都亲自测试过,文章的语言也尽量用我的话来叙述,大量的动图和图片也是我一个一个截的 属性介绍以xml里为主,代码中动态设置使用`setXXX`即可...+CoordinatorLayout Android材料设计之CollapsingToolbarLayout+Palette Android材料设计之DrawerLayout+NavigationView...DrawerLayout.gif ---- 11.NavigationView资料卡片: 国籍:View 城市:ViewGroup(FrameLayout) 爱好:装东西 一句话:我就是我,不一样的自我...NavigationView.png ---- 12.TextInputLayout资料卡片: 国籍:View 城市:ViewGroup(LinearLayout) 爱好:装东西 一句话:输入框的最佳神辅助

    86110

    【Android】5.x炫酷标题栏动画使用理解

    CollapsingToolbarLayout则只是一个对Toolbar进行包装,实现了可以对标题栏进行折叠功能的一个基本容器,它是作为AppBarLayout的直接子布局来使用。...这么说好像也不怎么好理解,题主就按自己的理解讲得通俗点,举个例子: 上面那张动图里,标题栏包括了一个Toolbar、一个背景图(imageView)、一个FAB按钮。...如何使用 好了,这样一来对于AppBarLayout和CollapsingToolbarLayout就有一个大概的理解了,那么下面就看看该怎么用。...AppBarLayout提供了一个布局参数scrollFlags,通过在它的子控件中设置这个属性的值,就可以实现相应的行为。...使用方法就像上面官网说的,可以在xml布局文件中直接在子控件中通过设置app:layout_scrollFlags,也可以在java代码中通过子控件实例对象调用setScrollFlags(int)来实现

    1.1K60

    Android开发笔记(一百三十七)自定义行为Behavior

    一般我们使用CoordinatorLayout,都是结合悬浮按钮FloatingActionButton、应用栏布局AppBarLayout或者可折叠工具栏布局CollapsingToolbarLayout...如果按照普通的实现方式,此种照镜子的动画效果,得给两个视图分别注册监听器,然后在A视图移动之际,同时触发B视图的移动行为。...然后在onDependentViewChanged方法中规定悬浮按钮配合提示条的运动行为,即提示条出现之时,悬浮按钮往上挪动;提示条消失之际,悬浮按钮向下移动。...女孩照镜子是在水平方向上协调运动的例子,生活中还有在垂直方向上协调运动的例子,比如使用定滑轮吊起重物,滑轮一端绳子吊着重物,另一端绳子连着人力;人力拉动绳子,重物就被吊上来,人力松开绳子,重物就会掉下来...具体实现之时,则需做三处修改: 1、首先自定义一个图像控件,通过手势可以拖动该控件; 2、其次自定义一个Behavior,指定存在依赖关系的两种视图,在layoutDependsOn方法中规定两种视图的类型

    1.3K20
    领券