ViewPager с FragmentPagerAdapter не отображается

Я использую Xamarin, и это моя вторая попытка заставить ViewPager работать. Я создал приложение с нуля со ссылкой на эту веб-ссылку: http://looksok.wordpress.com/2013/10/26/android-support-v4-viewpager-tutorial-including-source-code/

Приложение компилируется, развертывается, но отображается только пустой черный экран.

Вот мой полный код:

MainActivity.cs

using System;
using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
using Android.Support.V4.App;
using Android.Support.V4.View;

namespace AndroidViewPagerTutorial
{
    [Activity (Label = "AndroidViewPagerTutorial", MainLauncher = true)]
    public class MainActivity : FragmentActivity
    {
        protected override void OnCreate (Bundle bundle)
        {
            base.OnCreate (bundle);

            SetContentView (Resource.Layout.activity_main);

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

            pager.SetCurrentItem (0, true);
        }
    }
}

MyPagerAdapter.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.Support.V4.App;

namespace AndroidViewPagerTutorial
{
    public class MyPagerAdapter : FragmentPagerAdapter {

        private List<Android.Support.V4.App.Fragment> fragments;
        int fragmentCount;

        public MyPagerAdapter(Android.Support.V4.App.FragmentManager fm) : base(fm)
        {
            this.fragments = new List<Android.Support.V4.App.Fragment>();
            fragments.Add(new FragmentOrange());
            fragments.Add(new FragmentGreen());
            fragments.Add(new FragmentRed());

            fragmentCount = fragments.Count;
        }

        #region implemented abstract members of PagerAdapter

        public override int Count 
        {
            get 
            {
                return fragmentCount;   
            }   
        }

        #endregion

        #region implemented abstract members of FragmentPagerAdapter

        public override Android.Support.V4.App.Fragment GetItem (int position)
        {
            return fragments[position];
        }

        #endregion
    }
}

FragmentOrange.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Util;
using Android.Views;
using Android.Widget;

namespace AndroidViewPagerTutorial
{
    public class FragmentOrange : Android.Support.V4.App.Fragment
    {
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

            View view = inflater.Inflate(Resource.Layout.fragment_orange, container, false);
            return view;
        }
    }
}

fragment_green.axml

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Util;
using Android.Views;
using Android.Widget;

namespace AndroidViewPagerTutorial
{
    public class FragmentGreen : Android.Support.V4.App.Fragment
    {
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

            View view = inflater.Inflate(Resource.Layout.fragment_green, container, false);
            return view;
        }
    }
}

fragment_red.axml

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Util;
using Android.Views;
using Android.Widget;

namespace AndroidViewPagerTutorial
{
    public class FragmentRed : Android.Support.V4.App.Fragment
    {
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

            View view = inflater.Inflate(Resource.Layout.fragment_red, container, false);
            return view;
        }
    }
}

activity_main.axml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    <android.support.v4.view.ViewPager
        android:id="@+id/myViewPager"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</RelativeLayout>

fragment_orange.axml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" />

fragment_green.axml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/holo_green_dark" />

fragment_red.axml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/holo_red_light" />

Могу ли я получить помощь, чтобы заставить это работать?

заранее спасибо

1 ответ

У меня есть код работает.

Вот что нужно изменить для каждого фрагмента:

public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
Другие вопросы по тегам