Я уверен, что это ошибка, поэтому я прошу об обходном пути. Мой макет похож:
<CoordinatorLayout>
<AppBarLayout>
<CollapsingToolbarLayout>
<ImageView/>
<Toolbar/>
</CollapsingToolbarLayout>
</AppBarLayout>
<android.support.v4.widget.NestedScrollView/> <!-- content here -->
</CoordinatorLayout>
Я получаю контент из Интернета, и я не знаю, насколько высок он будет - может быть несколько строк, может быть очень длинным.
Однако я обнаружил, что CollapsingToolbar
не работает, когда контент недостаточно велик для покрытия всего экрана. Случаи:
-
content.height > screen.height
: работает; swiping top/bottom расширяет и сворачивает панель инструментов, а также прокручивает содержимое; -
content.height < screen.height
: нет. Это не хорошо, потому что большую часть времени(content.height + expandedToolbar.height) > screen.height
!
Другими словами, если контент не достаточно высок, , даже если контент + расширенный Toolbar намного выше, чем весь экран, он не реагирует на жестов прокрутки и показывает некоторые ошибки - может потребоваться десять жестов, чтобы немного свернуть панель инструментов. Таким образом, вы вряд ли сможете попасть в нижнюю часть содержимого, которая скрыта внизу, потому что панель инструментов расширена.
Любое обходное решение?
Если вы хотите попробовать, просто возьмите cheesesquare образец проекта и удалите (или уменьшите) содержимое внутри NestedScrollView
в activity_detail.xml [API17 здесь ]