android :一種使布局擴展到通知欄的方法

實現(xiàn)效果:

代碼實現(xiàn):

/**

* 是否將布局全屏顯示(布局填充到statusbar上面)

* @param window

* @param isFullScreen

*/

public static void setFullScreenToStatusBar(Window window,boolean isFullScreen) {

if (!isFullScreen) {

window.clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);//全屏顯示

? ? ? ? window.clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);//強制

? ? }else {

window.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);

? ? ? ? window.addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);

? ? }

}

注意:使用了全屏顯示以后布局會與覆蓋到通知欄,可使用以下代碼適應通知欄

獲取通知欄高度

public static int getStatusBarHeight(Context context) {

if (statusBarHeight != -1) {

return statusBarHeight;

? ? }

//獲取status_bar_height資源的ID

? ? int resourceId = context.getResources().getIdentifier("status_bar_height", "dimen", "android");

? ? if (resourceId >0) {

//根據(jù)資源ID獲取響應的尺寸值

? ? ? ? statusBarHeight = context.getResources().getDimensionPixelSize(resourceId);

? ? }

return statusBarHeight;

}

調(diào)整頂部組件布局位置:

TextView tv? = ...;

ViewGroup.MarginLayoutParams lp = (ViewGroup.MarginLayoutParams)tv.getLayoutParams();

lp.topMargin = statusBarHeight;//設置view marginTop 的高度

toolbar.setLayoutParams(lp);

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容