如何把activity當成dialog


在工作中有時候需要把activity當成dialog使用,其實做法挺簡單的。

1、設置activity的style

<style name="DialogTheme" parent="@android:style/Theme.Dialog">
        <!-- 邊框 -->
        <item name="android:windowFrame">@null</item>
        <!-- 是否浮現在activity之上 -->
        <item name="android:windowIsFloating">true</item>
        <!-- 不透明 -->
        <item name="android:windowIsTranslucent">true</item>
        <!-- 無標題 -->
        <item name="android:windowNoTitle">true</item>
        <!-- 背景 -->
        <item name="android:windowBackground">@android:color/transparent</item>
        <!-- 模糊 -->
        <item name="android:backgroundDimEnabled">true</item>
    </style>

2、把該style應用給該activity

<activity 
android:name=".me.widget.DialogActivity" android:theme="@style/LoginDialogTheme">
</activity>

要注意一點,如果style的parent是:@android:style/Theme.Dialog,如上面所示

style name="DialogTheme" parent="@android:style/Theme.Dialog"

那么該DialogActivity只能繼承Activity,不能繼承AppCompatActivity

 

本來,我們通過在上面的style中能夠設置該activityDialog的進出動畫,就像這樣

<item name="android:windowEnterAnimation">@anim/dialog_scale_in</item>
<item name="android:windowExitAnimation">@anim/dialog_scale_out</item>

 

但是有些手機不起作用,怎么辦呢?重寫唄。看下面:

 @Override public void finish() { super.finish(); overridePendingTransition(0, R.anim.dialog_scale_out); }

 

在我使用activity當作dialog的時候,關閉該activityDialog的時動畫效果與關閉activity的時候是一樣的,即從右邊退出,彈出activityDialog的時候動畫沒問題。這樣肯定不行,我要的是無論如何,進出該activityDialog的方式都與普通dialog一樣,因此,我重寫了退出該activityDialog的時候的動畫。

 

轉載請標明出處:http://www.cnblogs.com/tangZH/p/8146006.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM