要获取CoordinatorLayout中CollapsingToolbarLayout的当前滚动位置,可以使用addOnOffsetChangedListener方法来监听CollapsingToolbarLayout的偏移变化。然后,可以通过调用AppBarLayout的getTotalScrollRange()方法来获取CollapsingToolbarLayout的最大滚动范围。
下面是一个代码示例:
CoordinatorLayout coordinatorLayout = findViewById(R.id.coordinator_layout);
CollapsingToolbarLayout collapsingToolbarLayout = findViewById(R.id.collapsing_toolbar_layout);
AppBarLayout appBarLayout = findViewById(R.id.app_bar_layout);
appBarLayout.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() {
@Override
public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) {
// 获取CollapsingToolbarLayout的最大滚动范围
int totalScrollRange = appBarLayout.getTotalScrollRange();
// 计算CollapsingToolbarLayout的当前滚动位置
int currentScrollPosition = totalScrollRange + verticalOffset;
// 打印当前滚动位置
Log.d("Scroll Position", "Current Scroll Position: " + currentScrollPosition);
}
});
在上面的代码中,我们通过调用addOnOffsetChangedListener
方法来添加一个监听器,当CollapsingToolbarLayout的偏移发生变化时,onOffsetChanged
方法会被调用。在该方法中,我们首先使用getTotalScrollRange
方法获取CollapsingToolbarLayout的最大滚动范围,然后通过计算得到当前滚动位置,并将其打印出来。
请确保在布局文件中正确引用了CoordinatorLayout、CollapsingToolbarLayout和AppBarLayout的id,并将代码放在适当的位置,以便在合适的时候调用。