Как я могу показать DialogFragment, используя пакет совместимости? - PullRequest
7 голосов
/ 19 июля 2011

Я пытался использовать DialogFragment на 3.0-устройствах, которые не поддерживают Fragment или DialogFragment по уровню SDK.

Итак, я решил использовать библиотеку совместимости Android, которая поддерживает Fragment.
Затем я создал класс DialogFragment, который расширяет android.support.v4.app.DialogFragment .

Но ..... Когда я попытался показать мой DialogFragment с помощью DialogFragment.show (), я уведомил, что show (FragmentManager, String) принимает первый аргумент как android.app.FragmentManager , а не android.support.v4.app.FragmentManager .

Я думаю, что android.app.FragmentManager нельзя использовать в устройствах Android 3.0, поскольку он не включен в SDK.

Есть ли способ показать DialogFragment с библиотекой совместимости? Должен ли я использовать другой способ отображения My DialogFragment с библиотекой совместимости?

Любая помощь будет высоко ценится. :)

Ответы [ 2 ]

15 голосов
/ 19 июля 2011

Пакет совместимости предназначен для разработчиков на версиях Android до 3.0.

Классы FragmentManager и DialogFragment существуют на уровне API 11 (3.0)

В любом фрагменте или задании вы можете выполнить следующее, чтобы отобразить небольшое (пустое) диалоговое окно в середине экрана:

DialogFragment df = new DialogFragment();
df.show(getSupportFragmentManager(), "MyDF");
10 голосов
/ 19 июля 2011

FragmentManager и DialogFragment существуют в compat lib для sdk версии 4 и выше, убедитесь, что вы импортировали их.

Пользователь getSupportFragmentManager(), чтобы получить FragmentManager для compat lib.

Показать диалоговое окно, как описано в DialogFragment документации, передающей compat lib версию FragmentManager.

Обратите внимание, что вы также можете трактовать DialogFragment как Fragment и показывать егоиспользование add(...) или replace(...) в качестве части транзакции, т. е. вы не ограничены просто использованием show(...)

...