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