Фрагменты в MvvmCross6 Исключение - PullRequest
0 голосов
/ 03 января 2019

Я пытаюсь использовать фрагменты с MvvmCross6.Я застрял с этим исключением: MvvmCross.Exceptions.MvxException: не удается создать фрагмент 'ReactionTimeFirstFragmentView'.Используйте MvxAppCompatViewPresenter при использовании фрагментов поддержки Android

[MvxFragmentPresentation(typeof(ReactionTimeRootViewModel), Resource.Id.content_frame, true,
                         Resource.Animation.abc_fade_in,
                         Resource.Animation.abc_fade_out,
                         Resource.Animation.abc_fade_in,
                         Resource.Animation.abc_fade_out)]
[Register(nameof(ReactionTimeFirstFragmentView))]
public class ReactionTimeFirstFragmentView : MvxFragment<ReactionTimeFragmentViewModel>
{
    public ReactionTimeFirstFragmentView()
    {
    }

    public ReactionTimeFirstFragmentView(IntPtr javaReference, JniHandleOwnership transfer) : base(javaReference, transfer)
    {
    }

    public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
    {
        // Use this to return your custom view for this Fragment
        // return inflater.Inflate(Resource.Layout.YourFragment, container, false);

        base.OnCreateView(inflater, container, savedInstanceState);
        return this.BindingInflate(Resource.Layout.reaction_time_fragment_layout, null);
        //return inflater.Inflate(Resource.Layout.reaction_time_fragment_layout, container, false);
    }

    public override void OnDestroy()
    {
        base.OnDestroy();
    }
}

Другой класс:

 [MvxActivityPresentation]
[Activity(Theme = "@style/AppTheme",
    WindowSoftInputMode = SoftInput.AdjustPan,
    ScreenOrientation = ScreenOrientation.Portrait)]
public class ReactionTimeActivity: MvxAppCompatActivity<ReactionTimeRootViewModel>
{
    protected override void OnCreate(Bundle bundle)
    {
        base.OnCreate(bundle);
        SetContentView(Resource.Layout.reaction_time_layout);
    }

    public override bool OnCreateOptionsMenu(IMenu menu)
    {
        MenuInflater.Inflate(Resource.Menu.menu_main, menu);
        return true;
    }

    public override bool OnOptionsItemSelected(IMenuItem item)
    {
        int id = item.ItemId;
        if (id == Resource.Id.action_settings)
        {
            return true;
        }

        return base.OnOptionsItemSelected(item);
    }
}

Нужно ли регистрировать какой-либо IoC?Bundle?Фабрика?Может быть, мне не хватает какой-то сборки?Любая помощь будет оценена.

1 Ответ

0 голосов
/ 03 января 2019

мне не хватало сборок:

  1. MvvmCross.Droid.Support.Fragment
  2. MvvmCross.Droid.Support.Design
  3. MvvmCross.Droid.Support.V7.AppCompat
  4. MvvmCross.Droid.Support.V7.RecyclerView

Я неправильно реализовал класс установки. Он должен наследовать от:

MvxAppCompatSetup<App>

Последнее исправление состояло в том, чтобы зарегистрировать сборку в классе установки:

typeof(MvxRecyclerView).Assembly
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...