我的Xamarin Android應用程序爲每個視圖使用片段而不是單獨的活動,其中一個片段需要包含一個用於照片滑塊的ViewPager。在Android 4.0和4.1中使用ViewPager/ChildFragmentManager
從我見過的一切中,ViewPager必須綁定到使用片段的適配器。這是有問題的,因爲這意味着我有一個片段內的片段,它必須使用ChildFragmentManager,而Android 4.2之前的版本不支持此片段。我的應用需要使用Android 4.0+,因此我需要有關如何解決此問題的指導。
我想過的某些行...
是否有一些其他類型的適配器的綁定到不使用片段一ViewPager的方法嗎?在我的情況下,我需要的是顯示一個ImageView作爲每個項目,所以一個片段似乎矯枉過正,顯然有4.2+問題。
除了ViewPager之外,是否還有其他一些控件可以在不依賴子碎片的情況下爲我提供所需的UX(左右滑動列表)?
有沒有辦法讓ChildFragmentManager與Android 4.0和4.1一起工作?
當前的代碼來設置ViewPager只有安卓4.2+支持:
<android.support.v4.view.ViewPager
android:layout_width="match_parent"
android:layout_height="200dip"
android:id="@+id/property_details_image_gallery" />
private ViewPager gallery;
gallery = view.FindViewById<ViewPager> (Resource.Id.property_details_image_gallery);
gallery.Adapter = new ImagePagerAdapter (ChildFragmentManager, 0, facts.PhotoUris);
gallery.SetOnPageChangeListener (this);
public class ImagePagerAdapter : FragmentPagerAdapter
{
private int resourceId;
private List<string> photos;
public ImagePagerAdapter (FragmentManager fragmentManager, int resourceId, List<string> photos) : base(fragmentManager)
{
this.resourceId = resourceId;
this.photos = photos;
if (photos.Count == 0)
photos.Add (string.Empty); // If there are no photos, we add a single photo that will result in a 'noimage' photo
}
public override Fragment GetItem (int position)
{
// Instantiate a new fragment
ImageGalleryFragment fragment = new ImageGalleryFragment (photos[position], position);
return fragment;
}
public override long GetItemId (int position)
{
return position;
}
public override int Count {
get {
return photos.Count;
}
}
}
我只是用Xamarin 2天前開始,所以請溫柔。 :)
改爲使用SupportFragmentManager。 – Cheesebaron