【发布时间】:2020-01-22 06:28:36
【问题描述】:
ViewPager2 PageChangeListener 不像普通的 ViewPager 那样工作?
【问题讨论】:
-
ViewPager2 提供
OnPageChangeCallback。 -
这工作谢谢
标签: android android-studio android-viewpager android-viewpager2
ViewPager2 PageChangeListener 不像普通的 ViewPager 那样工作?
【问题讨论】:
OnPageChangeCallback。
标签: android android-studio android-viewpager android-viewpager2
有registerOnPageChangeCallback 方法:
pager.registerOnPageChangeCallback(object: ViewPager2.OnPageChangeCallback() {
override fun onPageScrolled(
position: Int,
positionOffset: Float,
positionOffsetPixels: Int
) {
super.onPageScrolled(position, positionOffset, positionOffsetPixels)
}
override fun onPageSelected(position: Int) {
super.onPageSelected(position)
}
override fun onPageScrollStateChanged(state: Int) {
super.onPageScrollStateChanged(state)
}
})
【讨论】:
下面是 ViewPager2 中 OnPageChangeListener 的示例代码。
class ViewPager2PageChangeCallback(private val listener: (Int) -> Unit) : ViewPager2.OnPageChangeCallback() {
override fun onPageSelected(position: Int) {
super.onPageSelected(position)
when (position) {
//YOUR CODE
}
}
}
【讨论】:
在 Java 中可以这样编码:
mViewPager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
@Override
public void onPageScrolled(int position,
float positionOffset, int positionOffsetPixels) {
super.onPageScrolled(position, positionOffset, positionOffsetPixels);
setProgress((position + positionOffset) / (mPageCount - 1));
}
});
【讨论】: