Android 单击MVVMCROSS片段中的事件

Android 单击MVVMCROSS片段中的事件,android,xamarin,xamarin.android,mvvmcross,Android,Xamarin,Xamarin.android,Mvvmcross,我有一个片段类,像这样: public class TMSAccountFragment : MvxFragment { //some code } 按钮单击事件: #region OnClick of account button ImageView acc_Button = view.FindViewById<ImageView>(Resource.Id.accountbutton_orange); acc_Button.Click += delegate {

我有一个片段类,像这样:

public class TMSAccountFragment : MvxFragment
{
    //some code
}
按钮单击事件:

#region OnClick of account button

ImageView acc_Button = view.FindViewById<ImageView>(Resource.Id.accountbutton_orange);
acc_Button.Click += delegate
{
    OnClick();
};

#endregion

public void OnClick()
{
    FragmentTransaction ft;
    Fragment frag;

    frag = new TMSSlidingTabsFragment();
    ft = FragmentManager.BeginTransaction();
    ft.Replace(Resource.Id.sample_content_fragment, frag);
    ft.AddToBackStack(null);
    ft.Commit();
}
#地区点击账户按钮
ImageView acc_按钮=view.FindViewById(Resource.Id.accountbutton_橙色);
acc_按钮。单击+=代表
{
OnClick();
};
#端区
公共void OnClick()
{
碎片交易;
碎片碎片;
frag=新的TMSSlidingAbsFragment();
ft=FragmentManager.BeginTransaction();
ft.Replace(Resource.Id.sample\u content\u frag);
ft.AddToBackStack(空);
ft.Commit();
}
以下错误发生在
FragmentManager.BeingTransaction()中

无法将类型“android.support.v4.App.FragmentTransaction”隐式转换为“android.App.FragmentTransaction”


使用getSupportFragmentManager()代替getFragmentManager()

public void OnClick()
 {
 Fragment frag = null;
 FragmentManager fragmentManager = getSupportFragmentManager();   
 FragmentTransaction fragmentTransaction =   fragmentManager.beginTransaction();
 frag = new TMSSlidingTabsFragment();
 fragmentTransaction .Replace(Resource.Id.sample_content_fragment, frag);         
 fragmentTransaction .AddToBackStack(null);
 fragmentTransaction .Commit();
 }

您需要使用
SupportFragmentManager
而不是常规的
FragmentManager

public void OnClick()
{
    var fragment = new TMSSlidingTabsFragment();
    var transaction = SupportFragmentManager.BeginTransaction();
    transaction.Replace(Resource.Id.sample_content_fragment, frag);
    transaction.AddToBackStack(null);
    transaction.Commit();
}

但是,由于您正在使用MVVMCross,我强烈建议您使用MVVM模式。也就是说,将此
单击
事件绑定到虚拟机中的
IMvxCommand
,并使用适当的演示器来处理片段的呈现方式(可以找到一些有用的入门资源)

不,getSupportFragmentManager()中存在问题;错误为getSupportFragmentManager();在当前上下文中不存在您是否使用了PagerAdapter?是的,我使用了PagerAdapter,但在不同的片段中