[Digging] Android Translucent StatusBar 2

[Digging] Android Translucent StatusBar 2_第1张图片
cover2

原文链接: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的位置。但是也带来了麻烦:

  1. Toolbar的高度不能正确计算。
  2. fitsSystemWindows属性响应异常。
  3. 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

你可能感兴趣的:([Digging] Android Translucent StatusBar 2)