查看寻呼机 2:深度页面转换 在寻呼机向上滑动时禁用片段单击事件



我正在使用带有fragmentStateAdapter的viewpager2。 另外,将页面转换器设置为深度页面转换(过渡以我想要的方式正常工作(

但是当我向上滑动页面时,该片段上的单击事件在双击时起作用(事件在单击两次后起作用(

如果我从视图页面中删除页面转换,那么它工作正常。 因此,无法理解为什么转换会导致点击事件问题。

private static final float MIN_SCALE = 0.75f;
public void transformPage(@NonNull View view, float position) {
int pageHeight = view.getHeight();
if (position < -1) { // [-Infinity,-1)
// This page is way off-screen to the left.
view.setAlpha(0f);
Log.d("batman",position+" <-1");
} else if (position <= 0) { // [-1,0]
// Use the default slide transition when moving to the left page
view.setAlpha(1f);
view.setTranslationY(0f);
view.setScaleX(1f);
view.setScaleY(1f);
Log.d("batman",position+" <=0");
} else if (position <= 1) { // (0,1]
// Fade the page out.
view.setAlpha(1 - position);
// Counteract the default slide transition
view.setTranslationY(pageHeight * -position);
// Scale the page down (between MIN_SCALE and 1)
float scaleFactor = MIN_SCALE
+ (1 - MIN_SCALE) * (1 - Math.abs(position));
view.setScaleX(scaleFactor);
view.setScaleY(scaleFactor);
Log.d("batman",position+" <=1");
} else { // (1,+Infinity]
// This page is way off-screen to the right.
view.setAlpha(0f);
Log.d("batman",position+" else");
}
}
}
HomeFragment(adapter setting):
mAdapter = new ViewPagerAdapter(this);
setPageChangeListener();
mViewPager.setAdapter(mAdapter);
//  mViewPager.setOffscreenPageLimit(3);
mViewPager.setPageTransformer( new DepthPageTransformer());

我希望按钮单击事件在向上滑动页面时应该一键工作。

上一个片段的点击在向上滑动时被禁用,因为我正在更新我的片段,该片段是从 onPageSelected(( 侦听器添加到视图寻呼器中的,因此这使得按钮在双击时工作。

@Override
public void onPageSelected(int position) {
homePresenter.onPageSelected();
currentPg = position;
}

也许我们无法从这个侦听器更新我们的片段。

最新更新