Xamarin Android底部逐步杆可以工作。请帮助我

发布于 2025-02-14 00:05:51 字数 1103 浏览 0 评论 0原文

我正在运行该程序是休息模式。我的代码中有什么问题对我有帮助。

UI仅很好,但是在添加NavigationEmselectectected事件之后,该程序是断点模式。

 private void BottomNavigation_NavigationItemSelected(object sender, BottomNavigationView.NavigationItemSelectedEventArgs e)
    {
        //LoadFragment(e.Item.ItemId);
    }



void LoadFragment(int id)
    {
        Android.Support.V4.App.Fragment fragment = null;
        switch (id)
        {
            case Resource.Id.menu_Meeting:
                fragment = MeetingFragment.NewInstance();
                break;
            case Resource.Id.menu_Project:
                fragment = ProjectFragment.NewInstance();
                break;
            case Resource.Id.menu_Account:
                fragment = AccountFragment.NewInstance();
                break;
        }
        if (fragment == null)
            return;

        SupportFragmentManager.BeginTransaction()
           .Replace(Resource.Id.content_frame, fragment)
           .Commit();
    }

在这里断开模式错误 请帮我!

I was run the program it's was break mode.What wrong in my code Help me please.

UI only is fine but the program is break mode after add NavigationItemSelected event.

 private void BottomNavigation_NavigationItemSelected(object sender, BottomNavigationView.NavigationItemSelectedEventArgs e)
    {
        //LoadFragment(e.Item.ItemId);
    }



void LoadFragment(int id)
    {
        Android.Support.V4.App.Fragment fragment = null;
        switch (id)
        {
            case Resource.Id.menu_Meeting:
                fragment = MeetingFragment.NewInstance();
                break;
            case Resource.Id.menu_Project:
                fragment = ProjectFragment.NewInstance();
                break;
            case Resource.Id.menu_Account:
                fragment = AccountFragment.NewInstance();
                break;
        }
        if (fragment == null)
            return;

        SupportFragmentManager.BeginTransaction()
           .Replace(Resource.Id.content_frame, fragment)
           .Commit();
    }

Here Break Mode Error
Please Help me!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

清泪尽 2025-02-21 00:05:51

根据您的代码,我实现了此功能。

您可以参考以下代码:

public class MainActivity : AppCompatActivity
{

    private SupportFragment mCurrentFragment;
    private MeetingFragment mFragment1;
    private ProjectFragment mFragment2;
    private AccountFragment mFragment3;
    private Stack<SupportFragment> mStackFragment;
    BottomNavigationView bottomNavigation;


    protected override void OnCreate(Bundle savedInstanceState)
    {
        base.OnCreate(savedInstanceState);
        Xamarin.Essentials.Platform.Init(this, savedInstanceState);
        // Set our view from the "main" layout resource
        SetContentView(Resource.Layout.activity_main);

        bottomNavigation = FindViewById<BottomNavigationView>(Resource.Id.bottom_navigation);

        bottomNavigation.NavigationItemSelected += (s, e) =>
        {
            Android.Support.V4.App.Fragment fragment = null;
            switch (e.Item.ItemId)
            {
                case Resource.Id.menu_Meeting:
                    fragment = new MeetingFragment();
                    break;
                case Resource.Id.menu_Project:
                    fragment = new ProjectFragment();
                    break;
                case Resource.Id.menu_Account:
                    fragment = new AccountFragment();
                    break;
            }
            SupportFragmentManager.BeginTransaction()
            .Replace(Resource.Id.content_frame, fragment)
            .Commit();

            return;
        };

        mFragment1 = new MeetingFragment();
        mFragment2 = new ProjectFragment();
        mFragment3 = new AccountFragment();

        mStackFragment = new Stack<SupportFragment>();

        var trans = SupportFragmentManager.BeginTransaction();
        trans.Add(Resource.Id.content_frame, mFragment3, "Fragment3");//NOT bottom_navigation, it must be the container
        trans.Hide(mFragment3);
        trans.Add(Resource.Id.content_frame, mFragment2, "Fragment2");
        trans.Hide(mFragment2);
        trans.Add(Resource.Id.content_frame, mFragment1, "Fragment1");
        trans.Commit();

        mCurrentFragment = mFragment1;

    }
}

Based on your code, I achieved this function.

You can refer to the following code:

public class MainActivity : AppCompatActivity
{

    private SupportFragment mCurrentFragment;
    private MeetingFragment mFragment1;
    private ProjectFragment mFragment2;
    private AccountFragment mFragment3;
    private Stack<SupportFragment> mStackFragment;
    BottomNavigationView bottomNavigation;


    protected override void OnCreate(Bundle savedInstanceState)
    {
        base.OnCreate(savedInstanceState);
        Xamarin.Essentials.Platform.Init(this, savedInstanceState);
        // Set our view from the "main" layout resource
        SetContentView(Resource.Layout.activity_main);

        bottomNavigation = FindViewById<BottomNavigationView>(Resource.Id.bottom_navigation);

        bottomNavigation.NavigationItemSelected += (s, e) =>
        {
            Android.Support.V4.App.Fragment fragment = null;
            switch (e.Item.ItemId)
            {
                case Resource.Id.menu_Meeting:
                    fragment = new MeetingFragment();
                    break;
                case Resource.Id.menu_Project:
                    fragment = new ProjectFragment();
                    break;
                case Resource.Id.menu_Account:
                    fragment = new AccountFragment();
                    break;
            }
            SupportFragmentManager.BeginTransaction()
            .Replace(Resource.Id.content_frame, fragment)
            .Commit();

            return;
        };

        mFragment1 = new MeetingFragment();
        mFragment2 = new ProjectFragment();
        mFragment3 = new AccountFragment();

        mStackFragment = new Stack<SupportFragment>();

        var trans = SupportFragmentManager.BeginTransaction();
        trans.Add(Resource.Id.content_frame, mFragment3, "Fragment3");//NOT bottom_navigation, it must be the container
        trans.Hide(mFragment3);
        trans.Add(Resource.Id.content_frame, mFragment2, "Fragment2");
        trans.Hide(mFragment2);
        trans.Add(Resource.Id.content_frame, mFragment1, "Fragment1");
        trans.Commit();

        mCurrentFragment = mFragment1;

    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文