我有一个DialogFragment,我试图在其中放置带有平铺位图的自定义背景。
我在styles.xml中使用自定义对话框主题设置背景:
<item name="android:windowBackground">@drawable/dialog_background</item>
这是我的dialog_background.xml可绘制对象,其中包含平铺背景的图层列表:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape
android:shape="rectangle">
<gradient
android:angle="90"
android:endColor="@color/background"
android:startColor="@color/background" />
<corners android:radius="10dp" />
<stroke
android:width="2dp"
android:color="@color/button_color" />
</shape>
</item>
<item>
<bitmap
android:src="@drawable/full_bloom"
android:tileMode="repeat"
android:dither="true" />
</item>
<item>
<shape>
<corners android:radius="10dp" />
<stroke
android:width="2dp"
android:color="@color/button_color" />
</shape>
</item>
</layer-list>
它工作正常,但是我的对话框有一个问题,这样做是为了达到WRAP_CONTENT高度:
@Override
public void onResume() {
super.onResume();
int sw = Util.getInstance().getScreenWidth(getActivity());
int sh = Util.getInstance().getScreenHeight(getActivity());
getDialog().getWindow().setLayout((int) (sw * 0.55), ViewGroup.LayoutParams.WRAP_CONTENT);
}
如果我将平铺的位图添加到对话框的层列表背景,它将停止执行WRAP_CONTENT以获取高度。而是将高度推到与父级匹配。
如何解决?