自定义AlertDialog大小被忽略

时间:2017-04-16 00:31:42

标签: android android-fragments android-alertdialog

我有一个250dp乘以300dp的自定义alertdialog,但在渲染时,尺寸基本上变为match_parent。根据我的理解,这可能是由null传递给LayoutInflater.inflate()引起的,但我是从fragmentonPostExecute() asynctask中生成此自定义对话框具体而言,不是adapter,所以我不确定如何获得对父viewgroup的引用。

layout.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="300dp" android:layout_height="250dp"
    android:background="@drawable/ad_dialog_background">

<Button
    android:layout_width="200dp"
    android:layout_height="30dp"
    android:text="dismiss"
    android:id="@+id/dismissButton_ad"
    android:background="@drawable/border"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="10dp"
    android:textColor="#484848" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/dialogTitle_ad"
    android:textSize="20dp"
    android:textColor="#000000"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="16dp"
    android:text="Quote Request Successful" />

<TextView
    android:layout_width="180dp"
    android:layout_height="148dp"
    android:text="Company XYZ:\n\nhas a special on X items from thus and thus a date to thus and thus a date"
    android:id="@+id/text_ad"
    android:textColor="#000000"
    android:layout_below="@+id/dialogTitle_ad"
    android:layout_toLeftOf="@+id/actionButtonOne_ad"
    android:layout_toStartOf="@+id/actionButtonOne_ad"
    android:layout_marginTop="10dp" />

<Button
    android:layout_width="90dp"
    android:layout_height="30dp"
    android:id="@+id/actionButtonOne_ad"
    android:background="@drawable/round_corners_list"
    android:textColor="#f7f7f7"
    android:layout_above="@+id/actionButtonTwo_ad"
    android:layout_alignLeft="@+id/actionButtonTwo_ad"
    android:layout_alignStart="@+id/actionButtonTwo_ad"
    android:layout_marginBottom="10dp"
    android:layout_marginRight="3dp"
    android:textSize="11dp"
    android:text="dssd" />

<Button
    android:layout_width="90dp"
    android:layout_height="30dp"
    android:id="@+id/actionButtonTwo_ad"
    android:background="@drawable/round_corners_list"
    android:textColor="#f7f7f7"
    android:layout_centerVertical="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true"
    android:layout_marginRight="3dp"
    android:textSize="11dp" />

<Button
    android:layout_width="90dp"
    android:layout_height="30dp"
    android:id="@+id/actionButtonThree_ad"
    android:background="@drawable/round_corners_list"
    android:textColor="#f7f7f7"
    android:layout_below="@+id/actionButtonTwo_ad"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true"
    android:layout_marginTop="10dp"
    android:layout_marginRight="3dp"
    android:textSize="11dp" />

fragment.java:

LayoutInflater inflater = LayoutInflater.from(getActivity());
View view = inflater.inflate(R.layout.ad_dialog, null);
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setView(view);
final AlertDialog dialog = builder.create();
//findViewsById()...
dialog.show();

1 个答案:

答案 0 :(得分:0)

我的错误是使用AlertDialog代替Dialog并在setContentView(R.layout.myview)对象上调用Dialog