C# Xamarin Android可绘制导航栏项目可点击

C# Xamarin Android可绘制导航栏项目可点击,c#,android,xamarin,C#,Android,Xamarin,我是Xamarin的新手,我试图弄清楚,当我点击导航栏上的某个项目时,它会进入另一个活动或另一个布局,但我尝试过使用开关,但它不会进行更改。这是我的密码 MainActivity.cs Main Activity.xml 如果我做错了,请纠正我 这是Navmenu.xml 是否希望获得如下效果 如果是这样,您可以通过Fragment 这是代码。当切换片段时 public bool OnNavigationItemSelected(IMenuItem item) {

我是Xamarin的新手,我试图弄清楚,当我点击导航栏上的某个项目时,它会进入另一个活动或另一个布局,但我尝试过使用开关,但它不会进行更改。这是我的密码

MainActivity.cs

Main Activity.xml


如果我做错了,请纠正我

这是Navmenu.xml


是否希望获得如下效果

如果是这样,您可以通过
Fragment

这是代码。当切换片段时

      public bool OnNavigationItemSelected(IMenuItem item)
    {
        int id = item.ItemId;

        FragmentTransaction transaction = this.FragmentManager.BeginTransaction();


        if (id == Resource.Id.nav_camera)
        {
            // Handle the camera action

        }
        else if (id == Resource.Id.nav_gallery)
        {
            fragment = new Fragment1();

        }
        else if (id == Resource.Id.nav_slideshow)
        {
            fragment = new Fragment2();

        }
        else if (id == Resource.Id.nav_manage)
        {

        }
        else if (id == Resource.Id.nav_share)
        {

        }
        else if (id == Resource.Id.nav_send)
        {

        }

        DrawerLayout drawer = FindViewById<DrawerLayout>(Resource.Id.drawer_layout);
        drawer.CloseDrawer(GravityCompat.Start);
        transaction.Replace(Resource.Id.FramePage, fragment);
        transaction.Commit();
        return true;
    }
public bool OnNavigationItemSelected(IMenuItem)
{
int id=item.ItemId;
FragmentTransaction=this.FragmentManager.BeginTransaction();
if(id==Resource.id.nav\u摄像机)
{
//处理相机的动作
}
else if(id==Resource.id.nav_gallery)
{
片段=新片段1();
}
else if(id==Resource.id.nav_幻灯片)
{
片段=新片段2();
}
else if(id==Resource.id.nav\u manage)
{
}
else if(id==Resource.id.nav_share)
{
}
else if(id==Resource.id.nav_send)
{
}
抽屉布局抽屉=FindViewById(Resource.Id.drawer\u布局);
抽屉。关闭抽屉(重力压缩机启动);
事务.Replace(Resource.Id.FramePage,片段);
Commit();
返回true;
}
这是我的演示(为了测试,我只创建了两个片段(Gallery和slidehow选项卡)),您可以参考它


是否为您的
导航视图添加了单击侦听器?类似于下面的代码
navigationView.SetNavigationItemSelectedListener(此)
并不要忘记实现
导航视图.IOnNavigationItemSelectedListener
界面。重写OnNavigationItemSelected方法。您可以通过VS创建Navigationdrawer演示,如下面的屏幕截图所示。我现在已经按照您的指示进行了操作,如何在单击时打开新活动,但仍有导航栏?
<?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:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:fitsSystemWindows="true"
    android:id="@+id/drawerLayout">

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <include
            layout="@layout/include_main"
 />

    </LinearLayout>

    <android.support.design.widget.NavigationView
        android:id="@+id/navView"
        android:layout_width="300dp"
        android:layout_height="match_parent"
        android:background="@color/white"
        android:layout_gravity="start"
        app:headerLayout="@layout/headerLayout"
        app:menu="@menu/navmenu"
    />
</android.support.v4.widget.DrawerLayout>
<?xml version="1.0" encoding="utf-8" ?>
<!--For all properties see: https://aka.ms/android-menu-resource-->
<menu xmlns:android="http://schemas.android.com/apk/res/android">

  <group>
    <item
      android:id="@+id/navProfile"
      android:title="Profile"
      android:icon="@mipmap/ic_person_action"
      />
    <item
  android:id="@+id/navRating"
  android:title="Rate a Driver"
  android:icon="@mipmap/ic_person_action"
      />
    <item
  android:id="@+id/navTopDriver"
  android:title="Weekly Driver"
  android:icon="@mipmap/ic_person_action"
      />
    <item
  android:id="@+id/navBalance"
  android:title="View Balance"
  android:icon="@mipmap/ic_person_action"
      />
    <item
  android:id="@+id/navAbout"
  android:title="About"
  android:icon="@mipmap/ic_person_action"
      />

  </group>

</menu>

      public bool OnNavigationItemSelected(IMenuItem item)
    {
        int id = item.ItemId;

        FragmentTransaction transaction = this.FragmentManager.BeginTransaction();


        if (id == Resource.Id.nav_camera)
        {
            // Handle the camera action

        }
        else if (id == Resource.Id.nav_gallery)
        {
            fragment = new Fragment1();

        }
        else if (id == Resource.Id.nav_slideshow)
        {
            fragment = new Fragment2();

        }
        else if (id == Resource.Id.nav_manage)
        {

        }
        else if (id == Resource.Id.nav_share)
        {

        }
        else if (id == Resource.Id.nav_send)
        {

        }

        DrawerLayout drawer = FindViewById<DrawerLayout>(Resource.Id.drawer_layout);
        drawer.CloseDrawer(GravityCompat.Start);
        transaction.Replace(Resource.Id.FramePage, fragment);
        transaction.Commit();
        return true;
    }