Я разработал некоторые пользовательские поведения для TextView
, который меняет положение и размер в зависимости от высоты AppBarLayout
внутри CoordinatorLayout
. Это означает, что заголовок становится большим и находится в центре полностью развернутого Toolbar
, когда он открыт, но в нормальном положении заголовка, когда ToolBar
полностью разрушен.Предотвращение CollapsingToolbar продолжается под строкой состояния в Lollipop
Посмотрите на видео, чтобы увидеть его на устройстве 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, то есть в заблокированной позиции, а не как оверлей.
Как бы я мог добиться этого?