我正在尝试根据此tutorial为Xamarin中的Android应用创建底部导航视图。
本教程没有解释如何正确实例化Fragment
。它使用Fragment.NewInstance
方法,该方法在继承自Android.Support.V4.App.Fragment
的类中不存在。经过一番研究后我发现,这是一个静态方法,本教程中没有提到。该方法基本上实例化片段
有了这些知识,我创建了以下课程:
using Android.OS;
using Android.Runtime;
using Android.Support.V4.App;
using Android.Views;
namespace Arbitrary
{
[Register("arbitrary.ArbitraryFragment")]
public class ArbitraryFragment : Fragment
{
public ArbitraryFragment()
: base()
{
}
public override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
}
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
var ignored = base.OnCreateView(inflater, container, savedInstanceState);
return inflater.Inflate(Resource.Layout.ArbitraryFragment, null);
}
public static ArbitraryFragment NewInstance()
{
return new ArbitraryFragment() { Arguments = new Bundle() };
}
}
}
在我的MainActivity
中,我尝试使用NewInstance
方法实例化我的片段。但是该方法在尝试执行构造函数时会抛出ClassNotFoundException
。我读到你必须使用Register
- 属性来防止这样的错误。参数中传递的string
应该与Java的命名约定相对应。我在Fragment类中做到了,但仍然提到Exception。
我该如何解决?