標題與頂部的距離(全屏下沒有狀態列)

2021-09-24 19:30:34 字數 1772 閱讀 6456

這是ui,這樣看起來是沒有任何影響的,需要我們在**中設定全屏,設定全屏後左上方箭頭將會上移,貼近了狀態列中的文字,這樣就很影響使用者美觀體驗。解決方法為計算出當前手機狀態列的高度,並動態設定標題的margins 

1、首先先設定全屏

/**

* 通過設定全屏,設定狀態列透明

** @param activity

*/public static void fullscreen(activity activity, int colorresid) else }}

2、計算狀態列高度

/**

* 獲取狀態列高度

** @param context context

* @return 狀態列高度

*/public static int getstatusbarheight(context context)

3、設定你自己頂部標題與上面的margins

relativelayout.layoutparams lp = new relativelayout.layoutparams(view.getlayoutparams());

lp.setmargins(0, getstatusbarheight(context), 0, 0);

view.setlayoutparams(lp);

說明:其中view為你控制項的id,例如我的為 :relative_title,relativelayout也可修改為linearlayout型別,所以說要將需要設定的控制項放置到這兩種布局之中,否則會報錯,錯誤我記不全了,跟你們說下:大概意思就是,若你的控制項外層包裹的是linearlayout,用如上**就會提示你linearlayout無法轉換為relativelayout。所以在網上找到了另外一種通用方法,放到自己的utils類中使用。如下

/*

* 設定某控制項與頂部的距離,通常與獲取狀態列高度一起使用

* */

public static void setmargins(view v, int l, int t, int r, int b)

}

4、在你需要設定的地方呼叫此**即可 如 

toolsutils.setmargins(relative_title, 0, getstatusbarheight(context), 0, 0);
說明:其中 getstatusbarheight(context)是前面第二步驟中求算的狀態列的值

補充:因為獲取的狀態列高度值單位為px,而第三步驟中p.setmargins(l, t, r, b);其中的型別也是px,所以我並沒有進行轉換。

解釋下:①獲取狀態列高度為什麼單位是px呢,因為我通過將得到的值進行了px轉dp,得到轉換後的值是24之後,我在布局中設定margin——top=24dp,再次執行,結果發現和在**中動態設定後的margins一致。②至於為第三步驟中單位為什麼是px,第三步驟中,我貼出的第乙個**塊中有這麼一行**:lp.setmargins(0, getstatusbarheight(context), 0, 0);因為as很智慧型,我在as中檢視了一下,發現注釋中就是px,如下圖

設定PdfPTable與標題間的距離

使用itextsharp生成pdf時,需要改變標題與文件中新增的pdfptable間距離,改變spacingbefore值不起作用,查了下這方面的知識較少,自己跟蹤 找到了設定位置是在使用itextsharp.text.document時,如 using itextsharp.text.pdf us...

滾動條與元素尺寸距離頂部的高度

js中有兩套方法可以檢視當前滾動條的滾動距離。第一套是這樣的 window.pagexoffset window.pageyoffset 這個方法可以檢視滾動條的橫軸和縱軸的滾動距離,但是很遺憾的是ie8以及以下的版本不相容。因此針對於ie,我們就需要有第二套方法 document.body.scr...

距離向量與鏈路狀態的區別

一 pk第一番 距離向量 執行距離向量路由協議的路由器,會將所有它知道的路由資訊與鄰居共享,但是只與直連鄰居共享!鏈路狀態 執行鏈路狀態路由協議的路由器,只將它所直連的鏈路狀態與鄰居共享,這個鄰居是指乙個域內 domain 或乙個區域內 area 的所有路由器!二 pk第二番 所有距離向量路由協議均...