我有一个250dp乘以300dp的自定义alertdialog
,但在渲染时,尺寸基本上变为match_parent
。根据我的理解,这可能是由null
传递给LayoutInflater.inflate()
引起的,但我是从fragment
(onPostExecute()
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();
答案 0 :(得分:0)
我的错误是使用AlertDialog
代替Dialog
并在setContentView(R.layout.myview)
对象上调用Dialog
。