java - 拖动时初始化 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 这样高效的东西。
我还使用页面转换器在中心缩放选定的头像。
解决方案
推荐阅读
- c - 在二维数组上创建一个动态指针数组
- typescript - 'any[]' 类型不存在属性 'socials'
- ssl - SSLException:使用 SharePoint 图形 API 重置连接 - 文件上传
- c++ - std::initializer_list 的初始化
- oauth-2.0 - 使用 Google id 令牌时如何构建 OAuth 流程?
- python - 如何将选择框的值作为外键传递(Django)
- python - 如何使用 lambda python 创建 zip 文件并上传回 s3?
- javascript - 给定url返回204时如何管理已加载的iframe
- angular - 如何在 Angular 8 中重定向到上一页
- google-sheets - 如何过滤单元格以查找字符串重复/重复?