【问题标题】:Two NavigationView in an Activity and Opening and Closing them with two seperate buttons in AppBarLayoutActivity 中的两个 NavigationView 并在 AppBarLayout 中使用两个单独的按钮打开和关闭它们
【发布时间】:2019-08-14 21:57:32
【问题描述】:

我有一个活动,我必须在其中进行 NavigationView。一个在左侧,另一个在右侧。两个 NavigationViews 都出现在活动中,并且在从左到右和从右到左相应地滑动时工作正常。我在 AppBarLayout 中有两个按钮。我需要用这些按钮控制这些 NavigationView。 (例如,当我单击 button1 时应该出现 NavigationView1,当单击 button2 时应该出现 NavigationView2)

这是我的布局文件

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:context=".Activities.MainActivity">

    <LinearLayout
        android:id="@+id/ll_main_activity"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <android.support.design.widget.AppBarLayout
            android:id="@+id/appbar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingTop="@dimen/appbar_padding_top"
            android:theme="@style/AppBarOverlay">

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:background="@color/br_blue_2"
                android:elevation="4dp"
                app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />

        </android.support.design.widget.AppBarLayout>

        <FrameLayout
            android:id="@+id/fragment_container"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginHorizontal="@dimen/margin_normal"
            android:background="@color/white" />
    </LinearLayout>

    <android.support.design.widget.NavigationView
        android:id="@+id/notification_menu"
        android:layout_width="wrap_content"
        android:layout_marginTop="@dimen/margin_normal"
        android:layout_height="match_parent"
        android:layout_gravity="end"
        app:menu="@menu/drawer_notification" />
    </android.support.design.widget.NavigationView>

    <android.support.design.widget.NavigationView
        android:id="@+id/navigation_menu"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        app:headerLayout="@layout/nav_header"
        app:menu="@menu/drawer_menu" />

</android.support.v4.widget.DrawerLayout>

【问题讨论】:

  • 我不确定您要问的是哪一部分。您是在问如何将这些按钮放入您的布局中?或者如何在它们上设置OnClickListeners?或者如何打开/关闭这些听众的抽屉?
  • @MikeM。我在布局中有按钮。我需要用按钮打开/关闭这些抽屉
  • DrawerLayout 具有 openDrawer()closeDrawer() 方法。这两个都有两个重载,因此您可以直接传递NavigationViews 或重力值,如GravityCompat.START

标签: android layout


【解决方案1】:

您的NavigationViews 具有相同的@id。你应该给他们不同的@ids 并用不同的按钮来切换它们。

请参阅here,了解如何在您的 NaviagtionView 中包含 ExpandableListView。

【讨论】:

  • 一个是“android:id="@+id/notification_menu",另一个是"android:id="@+id/navigation_menu"。我不明白你的意思。这两者是不同的。对吗?
猜你喜欢
  • 2019-08-01
  • 2013-06-05
  • 2013-08-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多