實現透明Dialog樣式的Activity

lixuce1234發表於2017-03-20
最近在專案開發中遇到了一個難題,需要先彈出一個Dialog然後點選Diaolog上面的按鈕之後再彈出一個Dialog 大概就是如下:
按著上面的思路開始來了,發現了一個問題,一個介面當前只能顯示一個Dialog,有一個Dialog存在的時候就不能去顯示另一個Dialog,然後就想到了用Activity的style去設定,讓Activity去顯示上面的一層。

下面來說一個我的想法和步驟:
1.建立一個style,
    <style name="dialog_style" parent="@android:style/Theme.Translucent.NoTitleBar">

        <!--是否懸浮在activity上-->
        <item name="android:windowIsFloating">true</item>
        <!--透明是否-->
        <item name="android:windowIsTranslucent">true</item>
	<!--activity的背景顏色(一定要設定成#00000000)-->
        <item name="android:background">#00000000</item>
	<!--沒有標題-->
        <item name="android:windowNoTitle">true</item>
	
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
	<!--可以設定Activity的彈出和消失動畫(可選)-->
        <!--<item name="android:windowAnimationStyle">@style/animation_style</item>-->
    </style>
2.給需要顯示成Dialog樣式的Activity設定樣式:
   <activity
            android:name=".LingQuSuccesActivity"
            android:theme="@style/dialog_style" />

3.注意下面一點Activity的佈局檔案裡面,根佈局的顏色要設定成#00000000,否則設定出來的效果不是半透明的,


按著這三步來,很快就把問題解決了,而且我們這個專案裡面有好多那種成功介面,這樣寫的話,可以複用同一個Activity,很簡單,想試試的可以嘗試一下。

相關文章