每次单击导航抽屉项目时,它都会关闭并且不会重定向到意图活动
/* MainActivity.java */
NavigationView navigationView = findViewById(R.id.navigationview);
Menu menu = navigationView.getMenu();
// Set a click listener for the Twitter menu item
MenuItem twitterMenuItem = menu.findItem(R.id.twitter_menu);
twitterMenuItem.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
// Handle Twitter menu item click
startActivity(new Intent(MainActivity.this, DemoActivity.class));
return true;
}
});
navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
// Handle navigation view item clicks here
int id = item.getItemId();
if (id == R.id.twitter_menu) {
// Handle Twitter menu item click
startActivity(new Intent(MainActivity.this, DemoActivity.class));
// Return true to indicate that the item is handled
return true;
}
drawerLayout.closeDrawer(GravityCompat.START);
// Return false to indicate that the item is not handled
return false;
}
});
下面是我的 sidemenu.xml,位于菜单资源目录中
/*sidemenu.xml*/
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:title="Rewards">
<menu>
<item
android:id="@+id/share_menu"
android:title="Earn Rewards"
android:icon="@drawable/share_vector" />
<item
android:id="@+id/refer_menu"
android:title="Redeem your Points"
android:icon="@drawable/refer_vector" />
</menu>
</item>
<group android:id="@+id/social_group">
<item
android:title="Follow Us on Social Media">
<menu>
<item
android:id="@+id/youtube_menu"
android:title="Linkedin"
android:icon="@drawable/youtube_color_svgrepo_com" />
<item
android:id="@+id/twitter_menu"
android:title="X"
android:icon="@drawable/xlog"/>
<item
android:id="@+id/facebook_menu"
android:title="Facebook"
android:icon="@drawable/facebook_color_svgrepo_com" />
<item
android:id="@+id/whatsapp_menu"
android:title="WhatsApp"
android:icon="@drawable/whatsapp_svgrepo_com" />
</menu>
</item>
</group>
</menu>
/* activity_main.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/drawerlayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start"
tools:context=".MainActivity">
<!--Sidemenu-->
<com.google.android.material.navigation.NavigationView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:id="@+id/navigationview"
app:headerLayout="@layout/headerfile"
app:menu="@menu/sidemenu"
android:layout_gravity="start"/>
<!--My ScrollView Con-->
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.constraintlayout.widget.ConstraintLayout
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"
android:layout_marginBottom="5dp"
android:background="@drawable/gradient"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:title="CAMPUS"
app:titleMarginStart="40dp"
app:titleTextAppearance="@style/ToolbarTitleText">
<ImageView
android:id="@+id/bell_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/wallet"
android:layout_gravity="end"
android:layout_marginEnd="16dp"
android:contentDescription="Bell Icon"/>
</androidx.appcompat.widget.Toolbar>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.core.widget.NestedScrollView>
</androidx.drawerlayout.widget.DrawerLayout>
我已经尝试了所有可能的方法,我知道每次出现相同的问题时,当导航抽屉项目单击它时,它会关闭抽屉布局,但什么也没有发生
这里可能会出现很多问题,首先,在 onMenuItemClick 方法体中打一个断点,看看当你点击菜单项时是否调用了它,或者,你可以在里面放一些日志来检查,然后你可以检查单击的菜单项的 id,也许这是正在调用的另一个 id,因为我可以看到您在
drawerLayout.closeDrawer(GravityCompat.START);
方法中有 onMenuItemClick
并且有可能这部分不是 false if (id == R.id.twitter_menu) {
并且结束了只关上抽屉