我正在阅读 DialogFragments 的官方 Android 教程。让我有点困惑的部分是:
void showDialog() {
mStackLevel++;
// DialogFragment.show() will take care of adding the fragment
// in a transaction. We also want to remove any currently showing
// dialog, so make our own transaction and take care of that here.
FragmentTransaction ft = getFragmentManager().beginTransaction();
Fragment prev = getFragmentManager().findFragmentByTag("dialog");
if (prev != null) {
ft.remove(prev);
}
ft.addToBackStack(null);
// Create and show the dialog.
DialogFragment newFragment = MyDialogFragment.newInstance(mStackLevel);
newFragment.show(ft, "dialog");
}
所以我的困惑源于他们使用findFragmentByTag("dialog")
. 没有一个布局 XML 声明其中包含一个标签dialog
。对于普通的 Fragmants,<fragment ../>
布局中有标签,因此我可以检索带有 Id 或标记名的片段。在这里,没有。
那么,什么给了?这是如何运作的 ?
另外,如果我有多个DialogFragments
怎么办?findFragmentByTag("dialog");
会返回什么??
:)