原文链接:https://blog.kyleduo.com/2017/05/02/digging-translucentstatusbar-2/
接上篇:[Digging] Android Translucent Status Bar,CollapsingToolbarLayout简化使用的同时,也带来了麻烦,针对状态栏透明,支持也不够完美。
上篇的Demo,没有包含CollapsingToolbarLayout当titleEnable
设置为true时的情况。当titleEnable
设置为true时,CollapsingToolbarLayout会向Toolbar内插入一个辅助用的mDummyView
,这个View用来辅助计算展开是Title的位置。但是也带来了麻烦:
- Toolbar的高度不能正确计算。
-
fitsSystemWindows
属性响应异常。 - AppBarLayout滚动范围异常。
影响还是挺多的,不过知道问题就可以处理了。我的解决方法是继承Toolbar
,修改DummyView的LayoutParams,将其高度设置成Toolbar的最小高度,完美解决。
@Override
public void addView(View child, int width, int height) {
if (View.class.isInstance(child)) {
mDummyView = child;
if (height == ViewGroup.LayoutParams.MATCH_PARENT) {
height = getSuggestedMinimumHeight();
}
}
super.addView(child, width, height);
}
这也只是一个Trick,如果你有更好的方案,也欢迎告诉我。
Demo源码:Github