Android 更改对话框片段中自定义对话框的高度
我已经创建了一个自定义对话框,代码如下。问题是,对话框的高度正在变成wrap_内容,即它与我在xml中提到的高度无关。我查过其他问题,它们帮不了我Android 更改对话框片段中自定义对话框的高度,android,android-layout,android-dialog,android-dialogfragment,Android,Android Layout,Android Dialog,Android Dialogfragment,我已经创建了一个自定义对话框,代码如下。问题是,对话框的高度正在变成wrap_内容,即它与我在xml中提到的高度无关。我查过其他问题,它们帮不了我 public class PointsDialogFragment extends DialogFragment{ private static final String TAG = PointsDialogFragment.class.getSimpleName(); public static PointsDialogFrag
public class PointsDialogFragment extends DialogFragment{
private static final String TAG = PointsDialogFragment.class.getSimpleName();
public static PointsDialogFragment newInstance(){
PointsDialogFragment pdf = new PointsDialogFragment();
Bundle newBundle = new Bundle();
pdf.setArguments(newBundle);
return pdf;
}
private View mRoot;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
getDialog().requestWindowFeature(STYLE_NO_TITLE);
mRoot = inflater.inflate(R.layout.fragment_points_dialog, null);
return mRoot;
}
}
fragment_points_dialog.xml的xml是
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="313dp"
android:layout_width="fill_parent"
android:background="@color/green_gradient_start"
>
<RelativeLayout
android:layout_width="173dp"
android:layout_height="242dp"
android:background="@drawable/reward_box"
android:id="@+id/reward_box"
android:layout_alignParentLeft="true"
>
<TextView
android:layout_centerInParent="true"
style="@style/WallSectionHeading"
android:text="5"
/>
</RelativeLayout>
<RelativeLayout
android:layout_width="173dp"
android:layout_height="250dp"
android:background="@drawable/reward_mascot"
android:layout_alignParentRight="true"
>
<LinearLayout
android:id="@+id/reward_cloud"
android:layout_width="wrap_content"
android:layout_height="100dp"
android:background="@drawable/reward_cloud"
android:layout_alignParentBottom="true"
>
<TextView
android:layout_gravity="center_vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="You have gained 5 Delight Points"
android:textColor="@color/white"
android:textStyle="italic"
android:paddingLeft="15dp"
android:paddingRight="10dp"
/>
</LinearLayout>
</RelativeLayout>
</RelativeLayout>
我想知道一种可以在对话框片段中更改对话框高度的方法。我认为问题在于,当膨胀视图时,您没有提供ViewParent。如果不提供该参数,视图根目录中的任何“layout_X”参数都将被忽略,因为这些值将提供给父级(在当前情况下为null)。可以做的是在膨胀时提供ViewParent,或者将视图XML包装到另一个视图组中,将绝对布局参数保留在第二级 示例代码:
mRoot=充气机。充气(R.layout.fragment\u points\u对话框,容器,false)在对话框Fragment xml中编码>,而不是使用LinearLayout,使用RelativeLayout并设置布局高度以包装内容,它将自动调整视图大小
确保不要使用“对齐父底部”,否则它将填充屏幕。mRoot=充气机。充气(R.layout.fragment\u points\u对话框,容器);这个答案是否正确???这个对我很有用。还要确保没有子视图使用match_parent作为高度,这样它就不会填充屏幕。
PointsDialogFragment pdf = PointsDialogFragment.newInstance();
pdf.show(getFragmentManager(), "dialog");