0

В настоящее время у меня есть AppBarLayout с CollapsingToolbarLayout внутри, и я добавил OffSetChangeListener, чтобы я мог поворачивать стрелку вниз в моей панели приложений, когда панель действий расширяется, теперь все работает хорошо, за исключением того, что Мне нужно максимальное смещение по вертикали, чтобы иметь возможность вычислять градусы для вращения, и он не предоставляется в слушателе в качестве аргумента. Это мой код:Как получить максимальное вертикальное смещение разворачивающейся панели инструментов

appBarLayout.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() { 
    @Override 
    public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) { 
     int slideOffset = verticalOffset*(-1); 
     int slideOffsetMax = 750; 

     int angle = slideOffset * 180/slideOffsetMax; 
     dropdownArrow.setRotation(angle); 

    } 

}); 

Проблема является Максимальная вертикальная смещения изменяется в зависимости от устройства, но если кто-то другой способ достижения этой цели, не стесняйтесь, чтобы показать мне. ps: Я установил максимальное смещение до 750, потому что я зарегистрировал смещение, чтобы найти максимум для моего устройства, но на моем планшете его разные.

ответ

4

Использование:

получить scrollrange вашего AppBarLayout и сделать ваши расчеты.

+0

сделал трюк, спасибо –