(с использованием библиотеки совместимости)
Я реализовал диалог с расширением DialogFragment.
Я создаю диалог, используя AlertDialog.Builder в onCreateDialog (onCreateView не используется).
В моем фрагменте я вызываю диалог с:
dlg.show(getFragmentManager(), tag);
Однако, когда я прихожу проверить видимость, как только диалоговое окно становится ясно видимым, используйте
dlg.isVisible();
Это возвращает ложь.
Теперь приведен код Fragment :: isVisible из источников совместимости.
final public boolean isVisible() {
return isAdded() && !isHidden() && mView != null
&& mView.getWindowToken() != null && mView.getVisibility() == View.VISIBLE;
}
Вызовы возвращают false, поскольку mView имеет значение null, поскольку представление не прикреплено к окну
Есть какие-нибудь идеи относительно того, как мне следует вызывать диалог или создавать его в этом отношении, чтобы он был прикреплен к корневому представлению фрагмента? Или как еще я должен проверять видимость?
Заранее спасибо, Питер.