其實用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,官方都寫好了,我們還造啥輪子呢。