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

Chr*_*nty 2 android android-fragments mvvmcross xamarin

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

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

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

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

小智 6

嗨,当你添加一个新的交易替换使用密钥标签

var ft = FragmentManager.BeginTransaction();
ft.Replace(Resource.Id.details, details, "FRAGMENT1");
Run Code Online (Sandbox Code Playgroud)

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

Fragment myFragment = (Fragment)FragmentManager.FindFragmentByTag("FRAGMENT1");
if (myFragment.IsVisible){
//your code here
}
Run Code Online (Sandbox Code Playgroud)

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

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;
    }
}
Run Code Online (Sandbox Code Playgroud)

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

希望它能帮到你