gpt4 book ai didi

c# - NavigationView SetCheckedItem 不触发 OnNavigationItemSelected

转载 作者:太空宇宙 更新时间:2023-11-03 14:40:54 25 4
gpt4 key购买 nike

我想在应用程序启动时选择抽屉导航中的特定项目。我在 visual studio 默认模板中添加了 navigationView.SetCheckedItem(Resource.Id.nav_gallery);

    protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.activity_main);
Android.Support.V7.Widget.Toolbar toolbar = FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);
SetSupportActionBar(toolbar);

FloatingActionButton fab = FindViewById<FloatingActionButton>(Resource.Id.fab);
fab.Click += FabOnClick;

DrawerLayout drawer = FindViewById<DrawerLayout>(Resource.Id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawer, toolbar, Resource.String.navigation_drawer_open, Resource.String.navigation_drawer_close);
drawer.AddDrawerListener(toggle);
toggle.SyncState();

var navigationView = FindViewById<NavigationView>(Resource.Id.nav_view);
navigationView.SetNavigationItemSelectedListener(this);

navigationView.SetCheckedItem(Resource.Id.nav_gallery);

}

但是没有调用 OnNavigationItemSelected

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

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

}

如果我单击导航项 OnNavigationItemSelected 将被调用并且一切正常。选择默认项的正确方法是什么?

更新

我添加这一行解决了它。单击特定项目。

 navigationView.Menu.PerformIdentifierAction(Resource.Id.nav_gallery, 0);

最佳答案

  navigationView.getMenu().getItem(position).setChecked(true);

你可以创建一个函数

 public void selectDrawerItem(int position, String tag) {

switch (position) {

case 0:
fragment = new DashboardFragment();
tvToolbarTitleLand.setText("Dashboard");
break;

//code.................
}

if (fragment != null) {

FragmentTransaction transaction = manager.beginTransaction();
transaction.setCustomAnimations(R.anim.enter_from_right, R.anim.exit_to_right);
transaction.replace(R.id.flMainContainer, fragment);
transaction.addToBackStack(tag);
transaction.commit();
}

navigationView.getMenu().getItem(position).setChecked(true);

如果您对此有任何疑问,请告诉我。

关于c# - NavigationView SetCheckedItem 不触发 OnNavigationItemSelected,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56886264/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com