В настоящее время у меня есть Toolbar
и ListView
под ним. Я хотел бы сделать свой контент более захватывающим, и я хочу сделать это, заставив панель инструментов прокручиваться вверх по экрану, когда вы прокручиваете ListView
, например, в виде списка топ-карт Google Play Store. Я использую https://github.com/ksoichiro/Android-ObservableScrollView, чтобы получить, когда список прокручивается, но теперь мой вопрос: как перевести панель инструментов, когда я просматриваю список? Я не хочу использовать метод onUpOrCancelMotionEvent()
, потому что это срабатывает только тогда, когда пользователь отпускает свой палец, а не как прокрутку. Код, который я получил до сих пор:Анимированная панель инструментов с ListView
lv.setScrollViewCallbacks(new ObservableScrollViewCallbacks() {
int last = -1;
@Override
public void onScrollChanged(int i, boolean b, boolean b2) {
if (b2) {
if (last == -1) {
last = i;
} else {
int dy = i - last;
if(toolbar.getY() > -TOOLBAR_HEIGHT && dy > 0) {
if(toolbar.getY() - dy < -TOOLBAR_HEIGHT)
toolbar.setY(-TOOLBAR_HEIGHT);
else
toolbar.setY(toolbar.getY() - dy);
tabs.setY(toolbar.getY() + TOOLBAR_HEIGHT);
}else if(toolbar.getY() < 0 && dy < 0) {
if (toolbar.getY() - dy > 0)
toolbar.setY(0);
else
toolbar.setY(toolbar.getY() - dy);
tabs.setY(toolbar.getY() + TOOLBAR_HEIGHT);
}
last = i;
}
}
}
...
}
Сейчас это работает, но белый прямоугольник визуализируется, где оригинальная панель была, например, так: http://i.imgur.com/akY7hly.gif (это GIF).
Как я могу анимировать панель инструментов со списком/правильно перевести панель инструментов?
Почему вы не устанавливаете анимацию на панели инструментов? – Elltz
Что значит? – TameHog
Не используйте 'toolbar.setY()' use 'toolbar.setTranslationY()' вместо – Kai