2014-01-26 1 views
0

Мое приложение содержит действие, называет его активностью A, которая отображает детали (название, автор, краткое резюме и т. Д.) Данной книги. TextView, содержащий краткую сводку, можно щелкнуть и отобразить всплывающее окно, в котором отображается расширенное резюме книги.правильный способ реализации пользовательского всплывающего окна? Действия против Dialog против AlertDialog

  • Option1: реализовать всплывающее окно, как новый вид деятельности (кажется излишеством)
  • Option2: реализовать как экземпляр диалогового класса с пользовательского макета (просто обескуражен)
  • OPTION3: его реализации как экземпляр класса AlertDialog с пользовательским макетом (выглядит просто неправильно)

Что такое «правильный» способ реализации простого всплывающего окна и почему?

Вот XML-файл всплывающего окна

<?xml version="1.0" encoding="UTF-8"?> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="#fefefe" 
android:padding="16dp" > 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" > 

    <TextView 
     android:id="@+id/tv_book_summary" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_margin="10dp" 
     android:textColor="#555555" 
     android:textSize="16sp" /> 

    <Button 
     android:id="@+id/btn_dismiss_description" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal" 
     android:background="@drawable/brown_btn" 
     android:text="@string/btn_close" 
     android:textColor="#ffffff" 
     android:textSize="25sp" /> 
</LinearLayout> 

</ScrollView> 
+1

Почему опция № 2 обескуражена? Просто потому, что это «диалог» вместо «диалогового окна»? Лично я не поклонник модальных/всплывающих окон, поэтому я бы попробовал и протестировал другой интерфейс. –

+0

Пожалуйста, прочитайте [справочную страницу] (http://developer.android.com/guide/topics/ui/dialogs.html) в диалогах. Это стоит ** глубокое чтение **. –

+0

@GiulioPiancastelli на ссылочной странице: «Класс Dialog является базовым классом для диалогов, но вам следует избегать непосредственного создания диалога. Вместо этого используйте один из следующих подклассов [...]« – kouretinho

ответ

1

Я думаю, что будет лучше использовать вариант # 2 или # 3. Если вы просто покажете дополнительный контент пользователю, и пользователь не будет взаимодействовать с представлениями в диалоговом окне, то я думаю, что лучший вариант - это №3. Вместо этого (например, если у вас будет сложный макет с дополнительными кнопками и т. Д.), Используйте # 2.

PS: также, современный способ - использовать DialogFragment вместо Dialogs.

+0

ОК, поэтому вердикт сначала «избегает действий», а во-вторых «использует раздутые диалоги» (DialogFragments точнее). Thx @Dimmerg. Ответ принят. – kouretinho

Смежные вопросы