【问题标题】:How to find the currently displayed fragment on android using Xamarin如何使用 Xamarin 在 android 上找到当前显示的片段
【发布时间】:2014-07-23 08:19:57
【问题描述】:

我正在尝试想办法在我正在开发的 Android 应用上获取当前显示的片段。我有一个加载片段的启动视图,我需要做的是在用户点击后退按钮时显示弹出消息,但只有当用户从某个片段点击后退按钮时才会显示弹出消息。例如:

片段 A > 导航到.. > 片段 B > 导航到... > 片段 C

如果用户单击片段 C 中的后退按钮,则不会显示任何内容,并且用户按预期返回片段 B。但是当用户在片段 B 上单击返回时,会显示一个弹出窗口,要求用户在允许继续返回片段 A 之前确认该操作,我希望这是有道理的。

我知道 OnBackPressed() 我可以在视图上覆盖它,但我不能在片段中触摸它。任何指针将不胜感激。

【问题讨论】:

    标签: android android-fragments xamarin mvvmcross


    【解决方案1】:

    您好,当您添加新事务时,请使用键 TAG 替换

    var ft = FragmentManager.BeginTransaction();
    ft.Replace(Resource.Id.details, details, "FRAGMENT1");
    

    如果你需要检查指定的片段是否可见

    Fragment myFragment = (Fragment)FragmentManager.FindFragmentByTag("FRAGMENT1");
    if (myFragment.IsVisible){
    //your code here
    }
    

    或者如果您需要获取并检查片段管理器中的所有片段,您可以使用它

    var fragmentsarray = FragmentManager.Fragments;
    foreach(var fragment in fragmentsarray)
    {
        if (fragment.IsVisible) {
            //put the code to use and get the tag to identify the current Fragment
            string tag = fragment.Tag;
        }
    }
    

    如果需要更多指定 Fragments 信息,您可以在此处查看 Android 文档http://developer.android.com/reference/android/app/Fragment.html

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 2012-03-06
      • 2012-07-07
      • 1970-01-01
      • 1970-01-01
      • 2016-04-07
      • 2022-11-22
      • 1970-01-01
      • 2016-11-06
      • 1970-01-01
      相关资源
      最近更新 更多