拖动时初始化Viewpager视图

时间:2018-12-17 21:53:48

标签: java android android-viewpager

我有一个查看寻呼机,用于选择头像。此视图分页器一次显示3页,但是当将视图分页器拖动几页时,直到我停止拖动时,才会初始化传入的视图。我该如何解决?

这是我将填充设置为显示多页的方法

setClipToPadding(false); // must be false so left and right pages will be always visible.
float visiblePages = 3;
post(() -> { // set padding to get visible pages.
    int padding = Math.round(getWidth() * (1f - 1f / visiblePages) / 2f);
    int paddingLeft = Math.max(getPaddingLeft(), padding);
    int paddingRight = Math.max(getPaddingRight(), padding);
    setPadding(paddingLeft, getPaddingTop(), paddingRight, getPaddingBottom());
});

我需要调用一个方法来在拖动时触发视图的初始化,但是我不知道要调用什么。

我尝试使用PageTransformer进行此操作,并使用反射调用populate,但是它不起作用

@Override
public void transformPage(@NonNull View page, float position) {
    float distance = Math.abs(position - (visiblePages - 1f) / 2f); // actual distance from center.

    if(distance > 1 || distance < 1) { 
        populate(); // calling populate using reflection causes infinite loop.
    }
}

请注意,将偏移量页面限制设置为最大不是我想要的解决方案。我需要像recyclerView这样的高效工具。

我还使用页面转换器在中心缩放选定的头像。

0 个答案:

没有答案