У меня есть несколько Actiobar с 5 вкладками с фрагментом. В 3 этих фрагментах я хочу показать диалог, поэтому я создал новый класс:Показать Диалог Фрагмент в ActionBar.Tab фрагменты
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;
}
}
В каждом OnCreate метода этого 3 фрагментов я пытаюсь показать диалог с помощью этого метода:
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");
}
Теперь проблема заключается в том, что этот диалог отображается на вкладках, которые не должны.
Например, я хочу, чтобы вкладки 1 3 и 5 отображали диалоговое окно, и иногда оно отображает его, но иногда, когда я нажимаю вкладку 2, появляется это диалоговое окно, и если я нажимаю 3, диалог не отображается. Что может быть проблемой и как ее исправить? Спасибо
Я попытался добавить showPopup() в onCreateView(), но способ отображения диалога довольно случайный. Я могу понять, почему? – Alin
Вы заметили некоторые изменения? – lithos35
прямо сейчас кажется, что всплывающее окно отображается дважды - например, всплывающее окно в 3 и 5 показано, когда я нажимаю вкладку 2 - но это не поведение каждый раз – Alin