Android-如何从片段内部调用片段?
我有一个显示卡片视图的片段,类似于仪表板。每个卡片视图都应该替换仪表板片段,并在单击时调用它自己的片段,但是我似乎不能这样做。 我尝试了以下方法:Android-如何从片段内部调用片段?,android,android-fragments,xamarin,Android,Android Fragments,Xamarin,我有一个显示卡片视图的片段,类似于仪表板。每个卡片视图都应该替换仪表板片段,并在单击时调用它自己的片段,但是我似乎不能这样做。 我尝试了以下方法: imageId.Click += delegate { ((FragmentActivity)Activity).ShowFragment(SmokeSensor); }; 活动中的方法: public void ShowFragment(SupportFragment fragment) {
imageId.Click += delegate {
((FragmentActivity)Activity).ShowFragment(SmokeSensor);
};
活动中的方法:
public void ShowFragment(SupportFragment fragment) {
var transaction = SupportFragmentManager.BeginTransaction();
connectionStatus.Visibility = ViewStates.Gone;
if (!ConnectionDetector.IsConnected(this)) {
connectionStatus.Visibility = ViewStates.Visible;
transaction.Detach(currentFragment);
transaction.Commit();
drawerLayout.CloseDrawer(leftDrawer);
return;
}
if (fragment == currentFragment) {
transaction.Detach(currentFragment);
transaction.Attach(currentFragment);
transaction.Commit();
drawerLayout.CloseDrawer(leftDrawer);
return;
}
transaction.SetCustomAnimations(Resource.Animation.slide_in, Resource.Animation.slide_out);
transaction.Replace(Resource.Id.fragment_container, fragment);
transaction.Commit();
drawerLayout.CloseDrawer(leftDrawer);
currentFragment = fragment;
}
对于嵌套片段,请在根片段上使用子片段管理器。您可以在主活动中创建一个公共方法,并调用该方法来替换或加载当前片段中事件的片段。@Milen我确实尝试过,使用了
((FragmentActivity)活动)。ShowFragment(new SmokeSensor())代码>,但它抛出一个错误,即它无法通过嵌套类型'******.Fragments.Dashboard.ViewAdapter'访问外部类型为'Android.Support.V4.App.Fragment'的非静态成员((youractivityname)getActivity()).yourmethodname(); 如果问题仍然存在,请粘贴您尝试访问的方法。