Android Xamarin,无法将片段转换为V4.App.fragment
当谈到沙马林时,我是一个新手,我遇到了一个无论我怎么努力都无法解决的问题 这就是我收到的错误消息“无法将类型'Fragment1'隐式转换为'andriod.support.V4.App.Fragment 这是我的主要活动Android Xamarin,无法将片段转换为V4.App.fragment,android,xamarin,Android,Xamarin,当谈到沙马林时,我是一个新手,我遇到了一个无论我怎么努力都无法解决的问题 这就是我收到的错误消息“无法将类型'Fragment1'隐式转换为'andriod.support.V4.App.Fragment 这是我的主要活动 public class MainActivity : AppCompatActivity { int count = 1; PagerSlidingTabStrip _tabs; ViewPager _pager; protected ov
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);
}
}
这是我的片段
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;
}
}
非常感谢您的帮助我对Xamarin不熟悉,但最近我一直在处理碎片,并多次遇到这个问题。我发现有时在初始化碎片时,它使用的是
android.app.Fragment
,而不是android.support.v4.app.Fragment
因此,无论您在何处初始化片段(同样不熟悉Xamarin),请确保您使用android.support.v4.app.Fragment。希望这会有所帮助!我对Xamarin不太熟悉,但我最近一直在处理片段,并多次遇到此问题。我发现有时在初始化片段时,它使用的是
android.app.Fragment
,而不是使用因此,无论您在哪里初始化片段(同样不熟悉Xamarin),请确保使用
android.support.v4.app.Fragment
。希望这有帮助!该错误意味着您继承的是android.app.Fragment
,而不是android.support.v4.app.Fragment
您可以使用上面的解决方案,也可以使用此更干净的声明
using Fragment=Android.Support.V4.App.Fragment;
。将其放在using语句之前或之后,就在名称空间声明之前。该错误意味着您继承的是Android.App.Fragment
,而不是Android.Supp>ort.V4.App.Fragment
您可以使用上面的解决方案,也可以使用这个更干净的声明
using Fragment=Android.Support.V4.App.Fragment;
。将它放在using语句之前或之后,就在名称空间声明之前。不幸的是,即使这样也不能解决问题,仍然感谢您的回复您尝试过更改它吗在类声明中?如将公共类Fragment1:Fragment更改为公共类Fragment1:android.support.v4.app.Fragment?它终于起作用了!!非常感谢您为我节省了无数个小时的工作时间。不幸的是,即使这样也不能解决问题,仍然感谢您的回复您尝试过在类声明中更改它吗?如更改公共类片段1:片段到公共类片段1:android.support.v4.app.Fragment?终于成功了!!非常感谢你为我节省了无数的工作时间。
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;
}
}