对于Xamarin来说,我是一个新人,我遇到了一个无论我怎样尝试都无法解决的问题 这是我一直得到的错误消息“无法将类型'Fragment1'隐式转换为'andriod.support.V4.App.Fragment
这是我的MainActivity
public class MainActivity : AppCompatActivity
{
int count = 1;
PagerSlidingTabStrip _tabs;
ViewPager _pager;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.Main);
_pager = FindViewById<ViewPager>(Resource.Id.pager);
_tabs = FindViewById<PagerSlidingTabStrip>(Resource.Id.tabs);
_pager.PageMargin = (int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 4, Resources.DisplayMetrics);
_pager.CurrentItem = 0;
string[] titles = new string[]
{
"Fragment1",
"Fragment2"
};
var adapter = new PagerAdapter(SupportFragmentManager, titles);
_pager.Adapter = adapter;
_pager.OffscreenPageLimit = titles.Length;
_tabs.SetViewPager(_pager);
}
}
这是我的pagerAdapter代码
public class PagerAdapter:FragmentPagerAdapter
{
private string[] Titles;
public PagerAdapter(FragmentManager fm, string[] titles)
: base(fm)
{
Titles = titles;
}
public override ICharSequence GetPageTitleFormatted(int position)
{
return new Java.Lang.String(Titles[position]);
}
public override int Count
{
get { return Titles.Length; }
}
public override Fragment GetItem(int position)
{
switch (position)
{
case 0:
return new Fragment1();
case 1:
return new Fragment2();
case 2:
default:
return new Fragment1();
}
}
}
这是我的片段
public class Fragment1 : Fragment
{
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
base.OnCreateView(inflater, container, savedInstanceState);
var view = inflater.Inflate(Resource.Layout.Fragment1Layout, null);
return view;
}
}
感谢任何帮助
答案 0 :(得分:0)
我对Xamarin并不熟悉,但我最近一直在处理片段,并多次遇到过这个问题。我发现,有时在我初始化片段时,它使用的是[Produces("application/json")]
,而不是使用android.app.Fragment
因此,无论您初始化片段(再次不熟悉Xamarin),请确保使用android.support.v4.app.Fragment
。希望这有帮助!
答案 1 :(得分:0)
该错误意味着您继承自Android.App.Fragment
而不是Android.Support.V4.App.Fragment
。
您可以使用上述解决方案,也可以使用此清洁声明using Fragment = Android.Support.V4.App.Fragment;
。在命名空间声明之前,将它放在using语句之前或之后。