我正在尝试将Android(Froyo)中的状态栏从屏幕顶部移动到屏幕底部。我已经进行了大量研究,但没有找到任何成功实现此操作的人。
附注:我不想隐藏状态栏,我想移动它。此外,如果无法再展开状态栏也无关紧要。对于这种情况,它永远不需要展开。
到目前为止,我已经完成了以下内容:
1.查看systemui/res/status_bar.xml文件,但它似乎只定义了状态栏内的布局,而不是状态栏本身。
2.查看systemui/src/com/android/systemui/statusbar/StatusBarService.java文件。 - 在267行左右,从R.layout.status_bar(在上面提到的status_bar.xml文件中定义)创建一个StatusBarView。 - 在330行左右,实例化WindowManager.LayoutParams并将gravity设置为Gravity.TOP。 - 在addStatusBarView()的末尾的341行,将视图和WindowManager.LayoutParams传递给WindowManagerImpl.getDefault().addView(view, lp)。
基于此,我将WindowManager.LayoutParams的gravity更改为Gravity.BOTTOM。这确实在某种程度上起作用;状态栏位于屏幕底部。然而,所有通常显示在状态栏下方的内容仍然在状态栏下方 - 它被推到了屏幕底部。就好像整个屏幕相对于状态栏定位一样。
有人能提供任何关于我需要修改什么才能使其正常工作的见解吗?
附注:我不想隐藏状态栏,我想移动它。此外,如果无法再展开状态栏也无关紧要。对于这种情况,它永远不需要展开。
到目前为止,我已经完成了以下内容:
1.查看systemui/res/status_bar.xml文件,但它似乎只定义了状态栏内的布局,而不是状态栏本身。
2.查看systemui/src/com/android/systemui/statusbar/StatusBarService.java文件。 - 在267行左右,从R.layout.status_bar(在上面提到的status_bar.xml文件中定义)创建一个StatusBarView。 - 在330行左右,实例化WindowManager.LayoutParams并将gravity设置为Gravity.TOP。 - 在addStatusBarView()的末尾的341行,将视图和WindowManager.LayoutParams传递给WindowManagerImpl.getDefault().addView(view, lp)。
基于此,我将WindowManager.LayoutParams的gravity更改为Gravity.BOTTOM。这确实在某种程度上起作用;状态栏位于屏幕底部。然而,所有通常显示在状态栏下方的内容仍然在状态栏下方 - 它被推到了屏幕底部。就好像整个屏幕相对于状态栏定位一样。
有人能提供任何关于我需要修改什么才能使其正常工作的见解吗?