Android Activity显示成对话框Dialog

方法一

直接设置已有的Dialog样式的主题,比如

<activity
    android:name=".DialogActivity"
    android:theme="@style/Theme.AppCompat.Dialog"/>

方法二

自定义主题theme,让后设置Activity的主题为该主题

先在styles.xml文件中自定义对话框样式的主题

<resources>
    <style name="ActivityDialog">
        <!--这是重点,把Activity显示成Dialog-->
        <item name="android:windowIsFloating">true</item>
        <!--这是第二个重点,对话框外背景半透,才有对话的效果-->
        <item name="android:backgroundDimEnabled">true</item>
        <!--是否显示标题-->
        <item name="android:windowNoTitle">true</item>
        <!--设置对话框的背景-->
        <item name="android:windowBackground">@android:color/transparent</item>        
        <!--点击对话框外是否关闭窗口-->
        <item name="android:windowCloseOnTouchOutside">true</item>
    </style>
</resources>

 然后把Activity的theme设置成自定义的主题

<activity
    android:name=".DialogActivity"
    android:theme="@style/ActivityDialog"/>

方法三

还有一种方法是继承已有的Dialog主题,这样比较灵活,可以继承父主题已定义的属性,又可以自定义一些属性

比如继承已有的"Theme.AppCompat.Dialog"主题,然后不显示标题,自定义背景色,点击对话框外部关闭对话框。

<style name="MyDialog" parent="Theme.AppCompat.Dialog">
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowCloseOnTouchOutside">true</item>
</style>

然后设置该主题

<activity
    android:name=".DialogActivity"
    android:theme="@style/MyDialog"/>

 

posted @ 2019-04-02 21:23  野猿新一  阅读(28)  评论(0编辑  收藏  举报