如何使用Xamarin在android上找到当前显示的片段

时间:2014-07-23 08:19:58

标签: android android-fragments xamarin mvvmcross

我正试图找到一种方法来获取我正在处理的Android应用上当前显示的片段。我有一个加载片段的启动视图,我需要做的是当用户点击后退按钮时显示弹出消息,但仅当使用是从某个片段点击后退按钮时。例如:

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

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

我知道OnBackPressed()我可以覆盖视图,但我无法在片段中触摸它。任何指针都会受到赞赏。

1 个答案:

答案 0 :(得分:5)

您好,当您添加新的交易时,请使用密钥标记

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;
    }
}

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

希望它可以帮到你