android - 如何访问 fragment 中的 getSupportFragmentManager 或 SupportFragmentManager

标签 android android-fragments xamarin

名称“getSupportFragmentManager”在当前上下文中不存在

我的代码:

using Android.Views;
using Android.OS;
using Android.Support.V4.App;
using com.refractored;
using Android.Support.V4.View;

namespace XamarinStore
{
    public class HomeFragment : Android.App.Fragment
    {
        BadgeDrawable basketBadge;
        int badgeCount;

        public override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            RetainInstance = true;
            SetHasOptionsMenu(true);



            // Create your fragment here
        }

        public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
        {
            var HomePage = inflater.Inflate(Resource.Layout.HomeLayout, container, false);

            var pager = HomePage.FindViewById<ViewPager>(Resource.Id.pager);
            pager.Adapter = new MyPagerAdapter(SupportFragmentManager);


            var tabs = HomePage.FindViewById<PagerSlidingTabStrip>(Resource.Id.tabs);
            tabs.SetViewPager(pager);

            return HomePage;
        }
    }

    public class MyPagerAdapter : FragmentPagerAdapter{
        private  string[] Titles = {"Categories", "Home", "Top Paid", "Top Free", "Top Grossing", "Top New Paid",
            "Top New Free", "Trending"};

        public MyPagerAdapter(Android.Support.V4.App.FragmentManager fm) : base(fm)
        {
        }

        public override Java.Lang.ICharSequence GetPageTitleFormatted (int position)
        {
            return new Java.Lang.String (Titles [position]);
        }
        #region implemented abstract members of PagerAdapter
        public override int Count {
            get {
                return Titles.Length;
            }
        }
        #endregion
        #region implemented abstract members of FragmentPagerAdapter
        public override Android.Support.V4.App.Fragment GetItem (int position)
        {
            return SuperAwesomeCardFragment.NewInstance (position);
        }
        #endregion
    }
}

如何访问 fragment 中的 getSupportFragmentManager ..

我正在使用 xamarin 跨平台开发工具.. 借助来自此来源的示例项目 https://xamarin.com/c-sharp-shirt

在演示项目中,如果 BackStackEntryCount 计数等于零,它会将屏幕切换到另一个 fragment ..所以我用新的 homefragment 替换了代码我决定在其中添加选项卡..所以我尝试使用此组件“Material Pager Sliding Tab Strip”.. 在使用该组件时它会因此错误而停止。 名称“getSupportFragmentManager”在当前上下文中不存在

http://components.xamarin.com/view/PagerSlidingTabStrip

最佳答案

首先我继承HomeFragmentAndroid.Support.V4.App.Fragment

然后我使用 ChildFragmentManager 而不是 SupportFragmentManager

pager.Adapter = new MyPagerAdapter(ChildFragmentManager);

关于android - 如何访问 fragment 中的 getSupportFragmentManager 或 SupportFragmentManager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29531643/

相关文章:

java - 从可穿戴设备到手机的消息

java - Android - 隐藏但可选择的 EditText

java - 如何在 FragmentPagerAdapter 中的 fragment 之间传递数据

android - 如何实现多窗口布局(如默认浏览器)(打开多个文件的编辑器)

c# - 如何将 PCL 转换为基于 .net 标准的库

c# - Xamarin ContentView 构造函数

android - 如何在加载 android 中的第一个 Activity 之前删除白屏?

android - 如何在 View 分页器中的 fragment 内处理MediaPlayer对象

azure - 使用 Azure 移动应用服务的 Xamarin 移动客户端中的数据库

java - Android 中不安全的蓝牙连接