作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我在尝试为状态栏添加颜色时发现了影响相对布局高度的问题。
adding Flag影响相对布局 rootView 高度的计算。
private void changeStatusBarColor(){
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Window window = getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.setStatusBarColor(getResources().getColor(R.color.red_e31837));
}
}
我有一个 View 树观察器,可以帮助我跟踪 rootView 的高度。
private ViewTreeObserver.OnGlobalLayoutListener keyboardLayoutListener = new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
int heightDiff = wrapper.getRootView().getHeight() - wrapper.getHeight();
}
如果我使用
FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS
,
int heightDiff
等于 1920 但如果我不使用 changeStatusBarColor()
,int heightDiff
等于 1776(我猜是在没有操作栏和状态栏的情况下计算的)。但是为什么添加这个标志改变计算呢?提前致谢!
最佳答案
在我的案例中,问题出现在 SlidingMenu 库中。这是一个solution .
关于android - "FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS"影响 getRootView().getHeight(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29372113/
使用以下代码会使我的布局扩展到导航栏下方。我只是想更改状态栏颜色而不弄乱布局。 int currentapiVersion = android.os.Build.VERSION.SDK_INT;
我在尝试为状态栏添加颜色时发现了影响相对布局高度的问题。 adding Flag影响相对布局 rootView 高度的计算。 private void changeStatusBarColor(){
我是一名优秀的程序员,十分优秀!