android-tabs - 在 ActionBar.Tab Fragments 中,显示 DialogFragment

  显示原文与译文双语对照的内容

我有几个 Actiobar,每个有 5个标签,每个标签有一个 fragment 。 在这里 Fragments的3中,我想显示一个对话框,这样我就创建了一个新类:


 public static class MyDialogFragment extends DialogFragment {
 @TargetApi(Build.VERSION_CODES.HONEYCOMB)
 static MyDialogFragment newInstance() {
 return new MyDialogFragment();
 }

 @TargetApi(Build.VERSION_CODES.HONEYCOMB)
 @Override
 public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);

 int style = DialogFragment.STYLE_NORMAL;
 int theme = android.R.style.Theme_Holo_Dialog;

 setStyle(style, theme);
 }

 @Override
 public View onCreateView(LayoutInflater inflater, ViewGroup container,
 Bundle savedInstanceState) {
 View v = inflater.inflate(R.layout.fragment_dialog, container, false);
 View tv = v.findViewById(R.id.textV);
 ((TextView)tv).setText("Dialog using style Normal - Theme AlertDialog - NoActionBar");


 return v;
 }
 }

在这 3 Fragments的每一个iframe方法中,我都试图使用这个方法显示对话框:


private void showPopup()
{
 FragmentTransaction ft = getFragmentManager().beginTransaction();
 Fragment prev = getFragmentManager().findFragmentByTag("dialog");
 if (prev!= null) {
 ft.remove(prev);
 }
 ft.addToBackStack(null);

 DialogFragment newFragment = MyDialogFragment.newInstance();
 newFragment.show(ft,"dialog");

}

现在,问题是这个对话框显示在不应该出现的标签上。

例如i 1 3显示对话框,有时显示对话框,有时当我点击tab对话框出现,如果点击 3对话框不会显示。 有什么问题我应该怎么修复它? 谢谢

时间: 作者:

你是否尝试在 onCreateView() 或者 onActivityCreated() 方法中移动 showPopup() 调用,而不是在 onCreate() 中?

编辑:根据下面的评论,问题被链接到一个 ViewPager,准备一些下一个 Fragments,然后调用 onCreate() 方法。

所以我在每个 fragment 中找到一个解决方案,我重写了方法调用 setMenuVisibility,并测试了 fragment 是否可见。 如果是- 我叫我的方法。

作者:
...