当前位置: 首页 > 知识库问答 >
问题:

单击项目菜单时如何关闭抽屉菜单?

宗政招
2023-03-14

这是点击事件。

view.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {


        v.setBackgroundResource(R.color.colorTim);

        FragmentManager fragmentManager = ((AppCompatActivity)context).getSupportFragmentManager();
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();

        HienThiSanPhamTheoDanhMucActivity hienThiSanPhamTheoDanhMucActivity = new HienThiSanPhamTheoDanhMucActivity();

        Bundle bundle = new Bundle();

        bundle.putInt("MALOAI",loaiSanPhams.get(groupPosition).getMALOAISP());
        bundle.putBoolean("KIEMTRA",false);
        bundle.putString("TENLOAI",loaiSanPhams.get(groupPosition).getTENLOAISP());

        hienThiSanPhamTheoDanhMucActivity.setArguments(bundle);
        fragmentTransaction.addToBackStack("TrangChuActivity");
        fragmentTransaction.replace(R.id.themFragment,hienThiSanPhamTheoDanhMucActivity);
        fragmentTransaction.commit();
        return false;
    }
});

这是xml

<?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"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/drawerLayout">

    <FrameLayout
        android:id="@+id/themFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <android.support.design.widget.CoordinatorLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:fitsSystemWindows="true"
            >


            <android.support.design.widget.AppBarLayout
                android:layout_height="wrap_content"
                android:id="@+id/appbar"
                android:layout_width="match_parent"
                android:background="@color/bgToolbar"
                android:fitsSystemWindows="true">

                <android.support.design.widget.CollapsingToolbarLayout
                    android:id="@+id/collapsing_toolbar"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    app:layout_scrollFlags="scroll|exitUntilCollapsed|snap"
                    >
                    <android.support.v7.widget.Toolbar
                        android:id="@+id/toolbar"
                        android:layout_width="match_parent"
                        android:layout_height="?attr/actionBarSize"
                        app:theme="@style/chumenu"
                        app:logo="@mipmap/logo"
                        app:layout_scrollFlags="scroll|enterAlways"
                        app:layout_collapseMode="pin"/>

                    <LinearLayout
                        android:id="@+id/lnSearch"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:orientation="horizontal"
                        android:background="@drawable/bgsearch"
                        android:layout_marginTop="55dp"
                        android:layout_marginLeft="10dp"
                        android:layout_marginRight="10dp"
                        app:layout_scrollFlags="scroll|enterAlways|enterAlwaysCollapsed|snap"
                        app:layout_collapseMode="parallax">

                        <Button
                            android:layout_width="0dp"
                            android:layout_height="wrap_content"
                            android:id="@+id/timkiem"
                            android:text="@string/timkiem"
                            android:layout_weight="1"
                            android:textAllCaps="false"
                            android:background="@drawable/bgsearchselected"
                            android:textColor="@color/colorTim"
                            android:gravity="center_vertical"
                            android:paddingLeft="20dp"/>
                        <View
                            android:layout_width="1dp"
                            android:layout_marginTop="10dp"
                            android:layout_marginBottom="10dp"
                            android:layout_height="match_parent"
                            android:background="@color/bgToolbar"/>
                        <ImageButton
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_gravity="center"
                            android:id="@+id/searchicon"
                            android:padding="10dp"
                            android:background="@drawable/bgimagesearch"
                            android:src="@drawable/ic_search_black_24dp"/>

                    </LinearLayout>
                </android.support.design.widget.CollapsingToolbarLayout>

                <android.support.design.widget.TabLayout
                    android:id="@+id/tab"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    app:tabTextColor="@color/colorGray"
                    app:tabTextAppearance="@style/chuthuong"
                    app:tabMode="scrollable">

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

            </android.support.design.widget.AppBarLayout>
            <FrameLayout
                android:id="@+id/content"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                app:layout_behavior="@string/appbar_scrolling_view_behavior"
                >
                <android.support.v4.view.ViewPager
                    android:id="@+id/viewpager"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent">

                </android.support.v4.view.ViewPager>

            </FrameLayout>
        </android.support.design.widget.CoordinatorLayout>
    </FrameLayout>

    <ExpandableListView
        android:id="@+id/epMenu"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:background="@color/colorWhite"
        android:choiceMode="singleChoice"
        android:groupIndicator="@null">

    </ExpandableListView>

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

结果将显示在片段中,但抽屉菜单仍然显示。我该怎么做才能关闭它?任何人都给我建议,如何解决这个问题,任何帮助非常感谢。谢谢你。

共有3个答案

乐正宜人
2023-03-14

将以下代码添加到MainActivity的onCreate()。java

 NavigationView navigationView = findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(mOnNavigationDrawerItemSelectedListener);

然后添加以下代码:

    private NavigationView.OnNavigationItemSelectedListener mOnNavigationDrawerItemSelectedListener
        = new NavigationView.OnNavigationItemSelectedListener() {
    @Override
    public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
        Fragment fragment;
        int id = menuItem.getItemId();

        switch (id) {
            case R.id.nav_reload_downloaded_tasks:
                toolbarTitle.setText(R.string.menu_reload_downloaded_tasks);
                fragment = new ReloadDownloadedTasksFragment();
                loadFragment(fragment);
                break;

            case R.id.nav_download_base_data:
                toolbarTitle.setText(R.string.menu_download_base_data);
                fragment = new ReloadDownloadedTasksFragment();
                loadFragment(fragment);
                break;
        }

        DrawerLayout drawer = findViewById(R.id.drawer_layout);
        drawer.closeDrawer(GravityCompat.START);
        return true;
    }
};

这是:

  private void loadFragment(Fragment fragment) {
    FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
    transaction.replace(R.id.nav_host_fragment, fragment);
    transaction.addToBackStack(null);
    transaction.commit();
}

在此处输入代码

禄仲渊
2023-03-14
view.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {


            v.setBackgroundResource(R.color.colorTim);

            FragmentManager fragmentManager = ((AppCompatActivity)context).getSupportFragmentManager();
            FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();

            HienThiSanPhamTheoDanhMucActivity hienThiSanPhamTheoDanhMucActivity = new HienThiSanPhamTheoDanhMucActivity();

            Bundle bundle = new Bundle();

            bundle.putInt("MALOAI",loaiSanPhams.get(groupPosition).getMALOAISP());
            bundle.putBoolean("KIEMTRA",false);
            bundle.putString("TENLOAI",loaiSanPhams.get(groupPosition).getTENLOAISP());

            hienThiSanPhamTheoDanhMucActivity.setArguments(bundle);
            fragmentTransaction.addToBackStack("TrangChuActivity");
            fragmentTransaction.replace(R.id.themFragment,hienThiSanPhamTheoDanhMucActivity);
            fragmentTransaction.commit();

            DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
            drawer.closeDrawer(GravityCompat.START);
            return false;
        }
    });
楚岳
2023-03-14

每次触摸任何物品时,将其添加到TouchListener中都会关闭抽屉:

drawer.closeDrawer(GravityCompat.START);
 类似资料:
  • 我在我的应用程序中以稍微不同的方式实现了抽屉菜单。但是抽屉不能顺利地打开或关闭。它在两者之间滞后。在谷歌应用程序中,抽屉菜单是如此流畅。我是如何实现的?这个问题已经在这里问过了,但它没有满足我的需求。请帮助! XML Java语言

  • 我是android的初学者。我想创建一个导航菜单抽屉。当我点击图标时,它会打开。当我点击菜单项时,它会显示片段。但是当我点击菜单项时,我的导航抽屉不会自动关闭。每次我关上导航抽屉看我的片段。我不知道在哪里更改代码?随信附上我的主要活动。java,activity_main。xml。任何人都可以帮助我。 activity_main.xml 主要活动。Java语言

  • 我正在使用可点击的下拉菜单进行导航。下拉列表使用输入标记。我陷入困境的地方是,如果访问者单击页面上的其他地方,我需要关闭下拉列表。我正在尝试使用目标属性、matches()方法和onclick事件。 我在控制台中注意到的是,当我打开下拉列表时,两个条件语句都出现了,下拉列表没有打开。这就好像下拉列表同时打开和关闭。 我做错了什么?我如何让它正常工作,以便用户只需打开下拉菜单,并在单击网页上的其他位

  • 你好,我有一个关于Android导航抽屉的问题。我在我的应用程序中包含了导航抽屉,一切都很顺利,但我想将图像添加到列表中的每个菜单中。 我是Android新手,所以如果有人能帮助我,我将不胜感激,这是导航抽屉的源代码 http://javatechig.com/android/navigation-drawer-android-example 这是我的WebViewFragments文件 这是我的

  • 我正在尝试单击一个菜单项,但是没有菜单项的webelements。 未单击菜单项时,web元素显示为: 单击菜单项后,Button标记就会改变。然而,菜单项的元素仍然是隐藏的。 菜单和单击后的图像在span标记中更改

  • "选择资源管理器中显示的项目" 选项组让您能选择添加到资源管理器关联菜单中的项目。当您在资源管理器和桌面上的一个文件和压缩文件图标上点击鼠标右键时,这些项目会显示。 "拖放上下文菜单" 选项可以用于从上下文菜单里删除 WinRAR 压缩和解压命令,在使用鼠标右键拖放文件后会显示此上下文菜单。默认启用这些选项,因此 WinRAR 建议在鼠标右键拖放之后使用一个目标文件夹作为目的地来压缩文件并解压文件