- 注册时间
- 2013-4-19
- 最后登录
- 2024-9-26
- 阅读权限
- 200
- 积分
- 6404
- 精华
- 0
- 帖子
- 640
|
转载请注明:www.asysbang.com
手机中通知栏是显示在屏幕的最上方的,而平板是在右下角
如何配置通知栏的显示位置呢
frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java中
public void setInitialDisplaySize(Display display, int width, int height)函数
int shortSizeDp = shortSize * DisplayMetrics.DENSITY_DEFAULT / DisplayMetrics.DENSITY_DEVICE;
if (shortSizeDp < 600) {
// 0-599dp: "phone" UI with a separate status & navigation bar
mHasSystemNavBar = false;
mNavigationBarCanMove = true;
} else if (shortSizeDp < 720) {
// 600-719dp: "phone" UI with modifications for larger screens
mHasSystemNavBar = false;
mNavigationBarCanMove = false;
} else {
// 720dp: "tablet" UI with a single combined status & navigation bar
mHasSystemNavBar = true;
mNavigationBarCanMove = false;
}
只要修改600和720这两个值就可以控制通知栏的位置了
PS:DisplayMetrics.DENSITY_DEVICE 这个值和ro.sf.lcd.density这个属性值有关
android不同版本,以及不同的平台这个地方的代码会有不同,需要分析具体代码
需要注意的是,这个地方修改之外,SystemUI也要配合修改,否则可能SystemUI运行会报错,导致状态栏消失
其中最后一个else 在android4.2的代码中被移除了
因为google官方决定4.2开始通知栏只在屏幕上方,并且还有快捷设置
如果还想在下面显示通知栏,最简单的方法就是直接加上else
|
|