如何从Android对话框中删除黑色背景。这张图片显示了问题所在。
final Dialog dialog = new Dialog(Screen1.this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.themechanger);
如何从Android对话框中删除黑色背景。这张图片显示了问题所在。
final Dialog dialog = new Dialog(Screen1.this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.themechanger);
当前回答
按样式设置这些样式代码
<style name="Theme.Transparent" parent="android:Theme">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
<item name="android:backgroundDimEnabled">false</item>
</style>
然后在下面简单地将false更改为true
<item name="android:backgroundDimEnabled">true</item>
它会使你的背景变暗。
其他回答
我遇到过更简单的问题,我想出的解决方案是应用透明的背景主题。按照你的风格写出这些行
<item name="android:windowBackground">@drawable/blue_searchbuttonpopupbackground</item>
</style>
<style name="Theme.Transparent" parent="android:Theme">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
<item name="android:backgroundDimEnabled">false</item>
</style>
然后加上
android:theme="@style/Theme.Transparent"
在主清单文件中,在对话框活动的块内。
在您的对话框活动XML集
android:background= "#00000000"
对话框弹出填充默认的黑色背景颜色或主题颜色,所以你需要设置透明的背景到对话框。试试下面的代码:-
final Dialog dialog = new Dialog(this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
dialog.setContentView(R.layout.splash);
dialog.show();
在我的例子中,没有什么可以应用透明背景。
只有我在我的对话onStart()中使用:
dialog?.window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
但这并没有起任何作用。我检查了styles.xml,没有任何与我的问题相关的内容。
最后,当我检查如何创建对话框时,我发现每当我请求对话框片段时,导航组件都会创建对话框。
在XML的navgraph.xml中,我将对话片段定义为片段,因此,它被创建为片段而不是对话框。将这个片段转换成对话框,一切就都到位了。
BTW:你不能在导航编辑器的GUI中从片段修改到对话框。你应该在代码中手工修改。
这可能是对话框的某些效果在运行时没有反映出来的原因之一。
注意:不要使用builder来改变背景。
Dialog dialog = new Dialog.Builder(MainActivity.this)
.setView(view)
.create();
dialog.show();dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
改变
Dialog dialog = new Dialog(getActivity());
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(view);
dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
dialog.show();
使用对话框时。builder,它没有给出getWindow()选项。
如果你想破坏对话框的黑暗背景,使用这个
dialog.getWindow().setDimAmount(0);