我目前有一个带有CollapsingToolbarLayout的AppBarLayout,我添加了一个OffSetChangeListener,所以当动作栏展开时我可以旋转我的appbar中的下拉箭头,现在一切正常,除了我需要最大垂直偏移才能够计算要旋转的度数,并且它不作为参数在侦听器中提供。这是我的代码:
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,因为我记录了偏移量以找到我的设备的最大值,但在我的平板电脑上却有所不同。
答案 0 :(得分:7)
使用:
int totalScrollRange = appBarLayout.getTotalScrollRange();
获取AppBarLayout的滚动范围并进行计算。