我試圖將Android(Froyo)中的狀態欄從屏幕頂部移動到屏幕底部。我做了很多研究,但沒有找到任何成功做到這一點的人。移動Android狀態欄
旁註:我不想隱藏狀態欄,我想移動它。另外,我不擔心狀態欄是否無法再擴展。對於這個用例,它永遠不需要。
這是我迄今所做的:
- 看着在
systemui/res/status_bar.xml
的status_bar.xml文件,但它似乎只定義佈局內的狀態欄,而不是狀態欄本身。 - 看着
systemui\src\com\android\systemui\statusbar\StatusBarService.java
文件。- 在第267行左右,從R.layout.status_bar創建一個
StatusBarView
(在上面提到的status_bar.xml文件中定義)。 - 在第330行左右,
WindowManager.LayoutParams
被實例化並且重力被設置爲Gravity.TOP
。 - 視圖和WindowManager.LayoutParams在addStatusBarView()的末尾的行341上傳遞給
WindowManagerImpl.getDefault().addView(view, lp)
。
- 在第267行左右,從R.layout.status_bar創建一個
在此基礎上,我改變了WindowManager.LayoutParams到Gravity.BOTTOM的嚴重性。這DID工作在一定程度;狀態欄位於屏幕的底部。但是,通常在狀態欄下方顯示的其他所有內容仍位於狀態欄的下方 - 將其從屏幕底部推出。就好像屏幕的其他部分相對於狀態欄一樣。
任何人都可以提供任何我需要修改這個工作的見解嗎?
你能提供到status_bar.xml的鏈接嗎? – Aleadam 2011-05-11 23:20:38
@Aleadam這是status_bar.xml的URL:[status_bar.xml](http://android.git.kernel.org/?p=platform/frameworks/base.git;a=blob;f=packages/SystemUI/RES /佈局/ STATUS_BAR。xml; h = a5d6885c6b907037fd57606dc1708e722819fe68; hb = refs/heads/master) – ianlh 2011-05-11 23:45:13
我認爲你應該看看所有定義mExpandedParams的數學運算(我認爲它圍繞着1343行,並遵循performFling的腳步(約875行) – jkhouw1 2011-05-12 01:57:45