Android中一个布局正常的有
- 状态栏
- 标题栏
- 用户布局
处理点击事件来进行对一个View的移动时,记得要把状态栏的高度去掉,还有标题栏的高度去掉(如果主题是没有标题的,则不需要),还有一点
Window.ID_ANDROID_CONTENT这个布局包含了状态栏跟标题栏
- 计算状态栏
//获取状态栏的高度
public int getStatusBarHeight() {
int result = 0;
int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android");
if (resourceId > 0) {
result = getResources().getDimensionPixelSize(resourceId);
}
return result;
}
- 计算标题栏
//这个是获取标题栏跟状态栏的高度
int contentTop = getWindow().findViewById(Window.ID_ANDROID_CONTENT).getTop();
//获取标题栏高度
int TiTleBar = getStatusBarHeight()-contentTop;
- 沉浸式页面
主要小心如果在主题设置了NoTiTle之类的样式 你使用获取getActionBar()会返回空的问题