阻止CollapsingToolbar在Lollipop的状态栏下继续

时间:2015-09-21 11:15:13

标签: android android-toolbar android-coordinatorlayout android-appbarlayout

我为TextView开发了一些自定义行为,可根据AppBarLayoutCoordinatorLayout的高度更改位置和大小。这样,标题在打开时显示为大且位于完全展开Toolbar的中心,但在ToolBar完全折叠时处于正常标题位置。

观看视频,在Lollipop设备(工作不正常)和JellyBean设备(工作正常)上查看。

问题出现(我相信,基于我的测试)仅适用于Lollipop设备,而且它似乎与状态栏是Lollipop设备上的覆盖物有关,而不是在JellyBean设备上。这反映在我的代码中,在哪里计算最终y位置我需要执行以下操作才能使最终位置正确:

if (mFinalYPosition == 0) {
    mFinalYPosition = (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
        ? (((mContext.getResources().getDimensionPixelOffset(R.dimen.abc_action_bar_default_height_material)/2)) + getStatusBarHeight())
        : ((mContext.getResources().getDimensionPixelOffset(R.dimen.abc_action_bar_default_height_material)/2));
    } 

对我来说最好的解决方案是,如果我可以让Lollipop设备将状态栏视为与早期Android版本相同,即处于锁定位置,而不是覆盖。

我将如何实现这一目标?

1 个答案:

答案 0 :(得分:1)

我可以通过删除android:fitsSystemWindows layout文件中的所有xml元素来解决此问题。此外,从我发布的视频中可以清楚地看到,在我的Lollipop设备上的动画期间,一些视图消失,然后再次出现。我能够通过在某些elevation上设置View来解决此问题,以确保他们在动画期间不会在其他人身后消失。