用Activity實現彈窗

其實用dialog是最方便的,但組長說不想在一個Activity裏寫太多代碼,原來的代碼已經很亂了。。。沒辦法,前人留下的代碼的確有點多,新加的只能在另外的Activity裏寫了,而且,它在這個彈窗里加的操作也太多了吧,有誰會在一個彈窗裏又加列表,又加viewPager又加按鈕的?咱也不敢說,咱也不敢問。業務邏輯這裏就不寫了,簡單記錄一下自己用Activity實現的彈窗效果吧。

其實大家都是窗口,寫起來也沒什麼複雜的,我這就是在AndroidManifest裏單獨給這個Activity設了一個主題,話不多說,直接上代碼

<style name="DialogActivityTheme" parent="Theme.AppCompat.Dialog">
        <item name="windowNoTitle">true</item>
        <item name="android:windowBackground">@color/true_transparent</item>
<!--        懸浮會自動打開左右間隔,不方便實現點擊空白關閉彈窗,所以設爲false -->
        <item name="android:windowIsFloating">false</item>
<!--        半透明-->
        <item name="android:windowIsTranslucent">true</item>
</style>

還有在佈局文件裏,外層整一個相對佈局RelativieLayout,裏面先鋪一層透明的view,再寫你自己的界面,要多少間隔就設多少間隔

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <View
        android:id="@+id/vOutside"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

    <!--    開始寫你自己的佈局-->
</RelativeLayout>

要實現點擊消失的效果,就給vOutside這個版設一個點擊事件,點擊就退出Activity,方法簡單粗暴,也沒有考慮什麼性能問題,好處就是可以整些花裏胡哨的東西。

至於彈出效果,改一下跳轉動畫就好了

overridePendingTransition(0, R.anim.page_out);


沒啥事還是建議用Dialog,官方都寫好了,我們還造啥輪子呢。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章