我正在尝试实现一个相对简单DialogFragment
的,它应该包含一个图像和一个确定按钮,我想根据我的活动的需要显示它。
onCreateView
我在via中设置了它的布局inflater.inflate
,但我不知道如何告诉它 OK 按钮事件处理程序的实现位于我的自定义 DialogFragment 类中。它似乎试图在活动中找到它,这不是我想要的。打电话getDialog().dismiss()
就足以驳回它吗?
以下是我在活动中创建对话框的方式:
ResponseDialog dialog = new ResponseDialog();
dialog.show(getFragmentManager(), "dialog_response_image");
另外,有些人说我的自定义 DialogFragment 应该设置getDialog().setCanceledOnTouchOutside(true);
,但我应该在哪里设置。在onActivityCreated
?
如果我想设置它包含的图像的来源,我如何从活动中访问它的视图?
此外,由于某种原因,即使我使用静态宽度/高度,它也会填满整个显示器。有谁知道如何解决这一问题?- 我设法通过切换到LinearLayout
而不是布局 XML来解决这个RelativeLayout
问题......DialogFragment
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:background="@color/background_color"
tools:context=".MainActivity"
android:layout_width="200dp"
android:layout_height="400dp"
android:id="@+id/dialogImageReponse" >
<Button
android:id="@+id/dialogButtonOk"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:text="@string/ok"
android:onClick="Ok" />
</RelativeLayout>