gpt4 book ai didi

android - 主题透明时如何取消对话框?

转载 作者:行者123 更新时间:2023-11-29 22:09:35 24 4
gpt4 key购买 nike

Pls see the code below..



final Dialog mDialog = new Dialog(this);
mDialog.setCanceledOnTouchOutside(true); //it works

mDialog.setContentView(R.layout.popup);
mDialog.show();

但是如果我为对话框添加主题那么

      final Dialog mDialog = new Dialog(this, android.R.style.Theme_Translucent_NoTitleBar);
mDialog.setCanceledOnTouchOutside(true); //But here It is not workin
mDialog.setContentView(R.layout.popup);
mDialog.show();

弹出窗口

  <?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:id="@+id/lyt_popup"
android:layout_gravity="center"
android:background="@drawable/popup_background"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<Button android:layout_height="wrap_content" android:background="@drawable/play_game" android:id="@+id/btn_play" android:layout_width="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="96dp" android:layout_gravity="center_horizontal"> </Button>
<Button android:background="@drawable/memory_game" android:id="@+id/btn_memory" android:layout_width="wrap_content" android:layout_height="wrap_content" a ndroid:layout_gravity="center_horizontal"></Button>

</LinearLayout>

最佳答案

如果您希望对话框全屏显示,则可以使用 android.R.style.Theme_Translucent_NoTitleBar。另一种方法是创建自己的样式,如下所示:

<style
name="Theme_Dialog_Translucent"
parent="android:Theme.Dialog">
<item
name="android:windowBackground">@null</item>
</style>

下面是工作代码::

Dialog mDialog = new Dialog(this,R.style.ThemeDialogCustom);
mDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
mDialog.setCanceledOnTouchOutside(true); //But here It is not workin
mDialog.setContentView(R.layout.popup);
mDialog.show();

像下面这样在 values 文件夹中有 style.xml:::

<?xml version="1.0" encoding="utf-8"?>

<resources>
<style name="ThemeDialogCustom" parent="android:Theme.Dialog">
<item name="android:windowFrame">@null</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
<item name="android:windowBackground">@color/transparent_color</item>
<item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
<item name="android:colorBackgroundCacheHint">@null</item>
</style>

</resources>

同时在 values 文件夹中添加 colors.xml:::

<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="transparent_color">#00000000</color>
</resources>

关于android - 主题透明时如何取消对话框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9987936/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com