Имя 'SupportFragmentManager' не существует в текущем контексте - PullRequest
1 голос
/ 23 сентября 2019

Я пытаюсь создать навигационную систему Swipe с вкладками в моем xamarin android, с которым я сталкиваюсь. Имя 'SupportFragmentManager' не существует в текущем контексте, ошибка, я не знаю, как это очистить Я новичок в xamarin android, пожалуйста, помогитея

MainActivity.cs

protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.GalleryPage);
            // Create your application here

            txtView = FindViewById<TextView>(Resource.Id.txtView);
            _imageView = FindViewById<ImageView>(Resource.Id.imageView1);
            Button button = FindViewById<Button>(Resource.Id.MyButton);
            TabLayout tabLayout = (TabLayout)FindViewById(Resource.Id.tablayout_navigation);

            ViewPager viewPager = (ViewPager)FindViewById(Resource.Id.pager);
            SetupviewPager(viewPager);

            tabLayout.SetupWithViewPager(viewPager);

        button.Click += delegate
            {
                Intent = new Intent();
                Intent.SetType("image/*");
                Intent.SetAction(Intent.ActionGetContent);
                StartActivityForResult(Intent.CreateChooser(Intent, "Select Picture"), PickImageId);
            }; 
        }

        private void SetupviewPager(ViewPager viewPager)
        {
            viewPager.OffscreenPageLimit = 3;
            var adapter = new PageAdapter1(SupportFragmentManager);
            adapter.AddFragment(new Fragment1(), "Title1");
            adapter.AddFragment(new Fragment2(), "Title2");
            adapter.AddFragment(new Fragment3(), "Title3");

            viewPager.Adapter = adapter;
        }

PageAdapter1.cs

using System.Collections.Generic;
using Android.Support.V4.App;
using Java.Lang;
using Fragment = Android.Support.V4.App.Fragment;
using FragmentManager = Android.Support.V4.App.FragmentManager;



namespace OCR_Pro
{
   public class PageAdapter1: FragmentPagerAdapter
    {
        private readonly List<Fragment> _fragments;
        private readonly List<string> _fragmentnames;

        public PageAdapter1(FragmentManager fm) : base(fm)
        {
            _fragments = new List<Fragment>();
            _fragmentnames = new List<string>();
        }

        public override int Count
        {
            get { return _fragments.Count; }
        }
        public override Fragment GetItem(int position)
        {
            return _fragments[position];
        }

        public void AddFragment(Fragment fragment, string name)
        {
            if (fragment == null) return;
            _fragments.Add(fragment);
            _fragmentnames.Add(name);
        }

        public override ICharSequence GetPageTitleFormatted(int position)
        {
            return new Java.Lang.String(_fragmentnames[position]);
        }
    }
}

Fragment1.cs

using Android.OS;
using Android.Runtime;
using Android.Util;
using Android.Views;
using Android.Widget;

namespace OCR_Pro
{
    public class Fragment1 : Android.Support.V4.App.Fragment
    {
        public override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            // Create your fragment here
        }

        public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
        {
            // Use this to return your custom view for this Fragment
            // return inflater.Inflate(Resource.Layout.YourFragment, container, false);

            var v = inflater.Inflate(Resource.Layout.Fragment1, container, false);
            return v;
        }
    }
}

Ошибка: имя 'SupportFragmentManager' не существует в текущем контексте

Ответы [ 2 ]

1 голос
/ 23 сентября 2019

Похоже, вы пытаетесь передать класс SupportFragmentManager вместо экземпляра класса.Попробуйте создать экземпляр экземпляра SupportFragmentManager, а затем передать его.

0 голосов
/ 24 сентября 2019

Пожалуйста, проверьте, устанавливаете ли вы Xamarin.Android.Support.v4 пакетом nuget.Тип SupportFragmentManager: Android.Support.V4.App.FragmentManager.

Если вы хотите получить образец, посмотрите:

https://docs.microsoft.com/en-us/xamarin/android/user-interface/controls/view-pager/viewpager-and-fragments

...