正确的方法来实现自定义弹出窗口?活动与对话与AlertDialog

时间:2014-01-26 11:08:42

标签: android android-layout android-activity alertdialog

我的应用包含一项活动,称之为活动A,它显示给定图书的详细信息(标题,作者,简要摘要等)。保存简短摘要的TextView是可点击的,并且会弹出一个弹出窗口,显示该书的扩展摘要。

  • 选项1:将弹出窗口实现为新的活动(似乎有点矫枉过正)
  • 选项2:使用自定义布局将其实现为Dialog类的实例(只是不鼓励)
  • 选项3:使用自定义布局将其实现为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 个答案:

答案 0 :(得分:1)

我认为最好使用选项#2或#3。如果您只是向用户显示其他内容,用户将不会与Dialog中的视图进行交互 - 我认为,#3是最佳选择。相反(例如,如果您将使用其他按钮进行复杂布局等),请使用#2。

PS:同样,现代的方式 - 使用DialogFragment而不是Dialogs。