全屏Activity彈出對話方塊如何防止全屏模式失效

2021-10-25 02:43:21 字數 1147 閱讀 6254

//在activity的oncreate方法中先呼叫此方法在setcontent進行實現全屏模式

private void setfullscreenmode() else if (build.version.sdk_int >= 19)

decorview.setonsystemuivisibilitychangelistener(new view.onsystemuivisibilitychangelistener() else if (build.version.sdk_int >= 19)

}

});

}

然而,現實對話方塊的時候,在華為的平板上,下面本來被隱藏的導航欄顯示了出來,而且activity被上下壓縮,很不美觀,最開始以為是theme引起的,結果然並卵,網上也沒有查到相關資料,好吧,我沒就從dialog入手吧。

dialog內部其實也是乙個window,然後將檢視資源載入進去,那麼初步懷疑出現這種情況的原因:dialog彈出來後用了dialog的window,這個window很顯然是預設的屬性不是全屏的。

既然上面實現全屏模式是通過設定window的屬性,那麼就依葫蘆畫瓢將dialog的window也想如上設定,將上面方法更改,引數傳遞乙個window進去,**如下:

public void showdialog()

private void setfullscreenmode(window window) else if (build.version.sdk_int >= 19)

decorview.setonsystemuivisibilitychangelistener(new view.onsystemuivisibilitychangelistener() else if (build.version.sdk_int >= 19)

}

});

}

ok,經過測試上面問題完全解決,彈出來的對話方塊不會在改變activity的寬高了

彈出對話方塊

先定義 private view view private alertdialog mprotocoldialog 彈出對話方塊 private void loadprotocol mprotocoldialog new alertdialog.builder this settitle getst...

彈出對話方塊

call function popup to confirm exporting titlebar diagnose object text question anything else?text button 1 yes?icon button 1 15 text button 2 no 002 ...

彈出對話方塊

data answer 20 type c.call function popup to confirm exporting titlebar diagnose object text question anything else?text button 1 yes?icon button 1 15...