我已经解决了一些问题,但没有解决我的问题。
我创建了一个自定义DialogFragment
。和dialog is cardView
的根元素。我设置了cardCornerRadius
的{{1}}。
然后我尝试设置透明对话框,因为背景颜色也随之显示。
然后我尝试设置对话框主题,如
cardView
背景仍然存在。然后我也尝试了
<style name="PauseDialog" parent="@style/Theme.AppCompat.Light.Dialog">
<!-- TTheme.AppCompat.Translucent-->
<item name="android:windowAnimationStyle">@style/PauseDialogAnimation</item>
<!--<item name="android:windowBackground">@android:color/transparent</item>-->
<item name="android:windowBackground">@color/transparent</item>
<item name="android:colorBackgroundCacheHint">@android:color/transparent</item>
<item name="android:windowFrame">@null</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowTitleStyle">@null</item>
<item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
<item name="android:backgroundDimEnabled">false</item>
<item name="android:background">@android:color/transparent</item>
</style>
但仍然对话框有与之关联的背景。
有任何解决方法吗?我怎么能摆脱它。
我在dialog.getWindow().setBackgroundDrawable(
new ColorDrawable(Color.TRANSPARENT));
onCreateDialog
答案 0 :(得分:11)
如果您想要圆角,可以尝试使用xml将自定义形状应用于自定义对话框背景。以下代码将帮助您。
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#FFFFFF" />
<corners
android:radius="10dp"/>
</shape>
您可以将cardview删除为顶部元素,因为对话框具有阴影和深度。 在将contentview设置为对话框
之前添加此行dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
答案 1 :(得分:0)
尝试在父级样式中使用无标题栏主题并使其变为半透明:
<style name="PauseDialog" parent="@android:style/Theme.NoTitleBar">
....rest of your style
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowNoTitle">true</item>
<item name="android:backgroundDimEnabled">false</item>
</style>