參考了前人的寫法以及網路上的資料
原來將 dialog 的 getWindow 設定為以下
5.0以下
dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
超過 5.0
dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY);
再加個權限
5.0以下
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
超過 5.0
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
好像非必要
<uses-permission android:name="android.permission.SYSTEM_OVERLAY_WINDOW" />
這樣在 new dialog 的時候就可以傳入 application 的 context 了!
不過我在超過 5.0 的版本失敗了!
錯誤訊息是 你的 activity 需要 appcompat theme
這到底是什麼鬼?
老實說我一開始是朝向帶入 application 的 context 是個錯誤的方向去找答案
經過一番折騰
最後
在我繼承的 dialog
從 AppCompatDialog 改成 Dialog
事情就完美的結束了
我真的覺得這些不太一般的需求搞得我好累
沒有留言:
張貼留言