Должен ли я использовать PopupWindow или DialogFragment для приема ввода?

Я делаю Popup с 3 Spinners и EditText. Прочитав множество блогов и статей, я не могу решить, что лучше: PopupWindow или DialogFragment.

Критериями будут:

  1. Совместимость с различными версиями Android
  2. Производительность

Если есть лучший способ сделать это, я готов изменить точку зрения.

Спасибо большое.

Диалоговый фрагмент:

  • Плюсы:
  • Минусы:

Всплывающее окно:

  • Плюсы:
  • Минусы:

ИЗМЕНИТЬ: ЗАКЛЮЧЕНИЕ

DialogFragment позволяет использовать более сложные функции. Еще одна важная вещь заключается в том, что он более удобен для планшетов, поскольку позволяет пользователю открывать более одного фрагмента за раз. Фрагменты — это более динамичное решение, и они являются стандартом для новых версий Android.

PopupWindow проще и очень полезен для простых вопросов пользователю.


person eyyo    schedule 01.03.2013    source источник
comment
какие решения заставили вас сузить выбор до одного из них (знаете ли вы какие-либо плюсы или минусы?). Кроме того, рассмотрите возможность публикации изображения того, что вы хотите. Эти изменения сделают этот пост звездным.   -  person Phil    schedule 01.03.2013
comment
Спасибо, Фил, я постараюсь улучшить вопрос!   -  person eyyo    schedule 01.03.2013


Ответы (2)


Библиотека поддержки может предоставить вам DialogFragment, который совместим со старыми версиями Android. Продолжайте с диалоговым окном фрагмента, потому что то, что вы просите, довольно специфично (3 счетчика и текст редактирования. Просто щелкните правой кнопкой мыши свой проект и нажмите «Инструменты Android» -> «Добавить библиотеку поддержки». Убедитесь, что вы используете диалог для импорт

import android.support.v4.app.DialogFragment;

В противном случае вы в конечном итоге будете использовать диалог без поддержки: P. У вас будет больше гибкости с фрагментом диалога и возможность использовать вид, который вы считаете нужным (даже макет, сделанный вами) без особых усилий.

Фрагмент диалога

Плюсы:

  • Возможность добавления любого вида
  • Легко редактировать
  • Можно адаптировать для планшетов или мобильных телефонов в альбомной или портретной ориентации, просто изменив макет.
  • Можно выделить целый новый класс, чтобы изменить его по-своему.

Минусы:

  • Потребляет больше памяти, чем сложнее ваше представление
  • Сложнее кодировать

Всплывающее окно:

Плюсы:

  • Проще
  • Легче кодировать
  • Он более стандартный, поэтому пользователю будет сложнее его спутать.

Минусы:

  • Проще, что означает меньший контроль над ним
  • Ограничено несколькими шаблонами

Это только мои мысли и мой опыт, но вы должны прочитать документацию

http://developer.android.com/reference/android/widget/PopupWindow.html

http://developer.android.com/reference/android/app/DialogFragment.html

person Dante    schedule 01.03.2013

Если вам нужен EditText в вашем окне и вы хотите, чтобы ваш пользователь мог долго нажимать в нем и вставлять (нормальное поведение текста редактирования), тогда не используйте popupwindow, я нашел это с трудом, поэтому:

Довольно большой минус во всплывающем окне заключается в том, что долгое нажатие на текст редактирования не вызовет контекстное меню по умолчанию (копировать/вставить/выбрать все,...). Также некоторые сообщают, что на некоторых устройствах это фактически вызывает приложение крушение. см. это https://code.google.com/p/android/issues/detail?id=62508

person bastami82    schedule 27.11.2016