我正试图找到一种方法来获取我正在处理的Android应用上当前显示的片段。我有一个加载片段的启动视图,我需要做的是当用户点击后退按钮时显示弹出消息,但仅当使用是从某个片段点击后退按钮时。例如:
片段A>导航到..>片段B>导航到...>片段C
如果用户单击片段C中的后退按钮,则不显示任何内容,用户将按预期返回片段B.但是当用户点击片段B时,会显示一个弹出窗口,要求用户在允许继续回到片段A之前确认该操作,我希望这是有道理的。
我知道OnBackPressed()我可以覆盖视图,但我无法在片段中触摸它。任何指针都会受到赞赏。
答案 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
希望它可以帮到你