【问题标题】:Hamburger icon not opening navigation drawer汉堡图标未打开导航抽屉
【发布时间】:2022-08-15 12:48:52
【问题描述】:

当我打开我的应用程序并单击汉堡包图标时,它不会打开导航抽屉。但是当我从边缘滑动时,它正在打开。此外,抽屉在滑动操作后响应汉堡图标点击事件。

我在 stackoverflow 上尝试了所有解决方案,但无法解决问题。请有人帮忙。提前致谢。

XML 代码:

<androidx.drawerlayout.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\"
android:layout_width=\"match_parent\"
android:layout_height=\"match_parent\"
tools:openDrawer=\"start\"
tools:context=\".MainActivity\">

<RelativeLayout
    android:layout_width=\"match_parent\"
    android:layout_height=\"match_parent\"
    android:id=\"@+id/activity_main\">

    <com.google.android.material.appbar.AppBarLayout
        android:id=\"@+id/appBarLayout\"
        android:layout_alignParentTop=\"true\"
        android:layout_width=\"match_parent\"
        android:layout_height=\"wrap_content\">

            <androidx.appcompat.widget.Toolbar
                android:id=\"@+id/toolbar\"
                android:layout_width=\"match_parent\"
                android:layout_height=\"wrap_content\"
                app:title=\"Nexzen\"
                app:titleTextColor=\"@color/white\"
                android:background=\"@color/dark_green\"/>

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

    <com.google.android.material.tabs.TabLayout
        android:layout_width=\"match_parent\"
        android:layout_height=\"wrap_content\"
        android:id=\"@+id/tabLayout\"
        android:background=\"@color/dark_green\"
        app:tabTextColor=\"@color/white\"
        app:tabIndicator=\"@color/receive_message\"
        app:tabSelectedTextColor=\"@color/receive_message\"
        android:layout_below=\"@id/appBarLayout\"/>

    <androidx.viewpager2.widget.ViewPager2
        android:layout_width=\"match_parent\"
        android:layout_height=\"match_parent\"
        android:id=\"@+id/viewPager\"
        android:layout_below=\"@id/tabLayout\"/>

</RelativeLayout>

<com.google.android.material.navigation.NavigationView
    android:layout_width=\"wrap_content\"
    android:layout_height=\"match_parent\"
    android:id=\"@+id/navmenu\"
    android:visibility=\"gone\"
    app:menu=\"@menu/drawer_menu\"
    app:itemTextColor=\"@color/text_color\"
    app:itemIconTint=\"@color/text_color\"
    app:headerLayout=\"@layout/nav_header\"
    android:layout_gravity = \"start\" />

</androidx.drawerlayout.widget.DrawerLayout>

活动代码:

@Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            binding = ActivityMainBinding.inflate(getLayoutInflater());
            setContentView(binding.getRoot());
    
            setSupportActionBar(binding.toolbar);
    
            toggle = new ActionBarDrawerToggle(this, binding.drawer, binding.toolbar, R.string.open, R.string.close);
            toggle.getDrawerArrowDrawable().setColor(getColor(R.color.white));
            toggle.setDrawerIndicatorEnabled(true);
            toggle.setDrawerSlideAnimationEnabled(true);
            binding.drawer.addDrawerListener(toggle);
            toggle.syncState();
    
        }
    
    @Override
        protected void onStart() {
            super.onStart();
        }
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            return super.onCreateOptionsMenu(menu);
        }
    
        @Override
        public boolean onOptionsItemSelected(@NonNull MenuItem item) {
            if (toggle.onOptionsItemSelected(item)) {
                binding.drawer.openDrawer(GravityCompat.START);
                return true;
            }
    
            return super.onOptionsItemSelected(item);
        }
    
        @Override
        protected void onPostCreate(@Nullable @org.jetbrains.annotations.Nullable Bundle savedInstanceState) {
            super.onPostCreate(savedInstanceState);
            toggle.syncState();
        }
    
        @Override
        public void onBackPressed() {
            super.onBackPressed();
            finish();
        }

    标签: java android android-studio navigation-drawer hamburger-menu


    【解决方案1】:

    抱歉,我不允许发表评论,但是我遇到了同样的问题,我可以滑动并打开抽屉,但是按钮不起作用。

    第一次滑动打开后,汉堡按钮开始工作。

    你有没有找到解决这个问题的方法?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-02
      • 2015-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-07
      相关资源
      最近更新 更多