lil*_*uit 6 java android android-viewpager2
我有 ViewPager2 回调设置,但需要检测用户启动的页面更改何时完成。回调不会区分用户启动和代码启动。这是我现在所拥有的:
ViewPager2.OnPageChangeCallback swipeListener = new ViewPager2.OnPageChangeCallback() {
@Override
public void onPageSelected(int position) {
//I want to run code only if user initiated this page change
//but this runs whether user initiated or code initiated
}
}
Run Code Online (Sandbox Code Playgroud)
通过代码完成的页面更改:
viewPager.setCurrentItem(targetSlide);
Run Code Online (Sandbox Code Playgroud)
ViewPager2 的文档显示了一种isUserInputEnabled()
方法,可以告诉您用户是否“可以”手动更改页面,但我需要检测用户是否“确实”启动了页面更改。
您可以在registerOnPageChangeCallback中使用isFakeDragging来检测拖动是否是假的或由用户发起的。
如果正在进行假拖动,则返回 true。
...onPageScrolledonPageScrolled(int position, float positionOffset, int positionOffsetPixels){
if(isFakeDragging)
{// fake scroll}
else{// user scroll}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5345 次 |
最近记录: |