Closed Sforllln closed 4 years ago
能否指点一下 @iielse
兄弟,你这个问题很好啊。
为什么点击事件无效: 因为 indexProvider 在ImageWatcher 这个 ViewGroup 上。 我在 onInterceptTouchEvent 的时候返回了 true。 所以 事件传不过去,已经耗掉了。
我当时没考虑考虑给IndexProvider提供点击事件: 设计 IndexProvider 的 主要目的正如其名字, 只是为了 “索引”这个功能。
稍等啊。
了解 可以考虑为这个 "索引" View 保留一下点击事件
我正在改这里,
改好了, /doge
这里看你代码是想分享吧? 可以考虑实现图片长按回调。 然后在底部弹出框, 上面带一个分享按钮这样
你看下 demo1 里面那种图片长按后的方式可以吗
好的 谢谢你 就用长按实现吧 ,昨天太忙了 没有回复你
没有 主要还是我太菜了
我也尝试 down下来改过 没搞定 -,-
我搞了,上一次提交ok的。但是别的功能挂了。所以放弃了。反正显示隐藏,滑动位置的回调都给出去了,你可以在 ImageWatcher
的上面放View
这样就不会截掉你的事件了
主要还是我太菜 - -, 其实长按也挺好的,但是加个View 可以做更多的事
感觉还有一点可以优化 就是View 在拖动的时候 把 IndexProvider 这个View 隐藏掉
我这边需要在 ViewPager 下加个横向列表预览,老哥你说这 IndexProvider 的事件该怎么加才好。。 @iielse
看下demo2 otherView
是的,后面我也是参考你的 appendOtherView() 做的修改,根据 StateChange 监听来在 activityDecorView 上添加移除,一开始从 demo4 跟进去的,看到都没有调用 setOtherView(),就把下面的 appendOtherView() 给忽略了。
老哥 666
interface OverlayCustomizer {
fun provideView(parent: ViewGroup): View? = null
}
open class ViewerCallbackAdapter : ImageViewerAdapterListener {
override fun onInit(viewHolder: RecyclerView.ViewHolder) {}
override fun onDrag(viewHolder: RecyclerView.ViewHolder, view: View, fraction: Float) {}
override fun onRestore(viewHolder: RecyclerView.ViewHolder, view: View, fraction: Float) {}
override fun onRelease(viewHolder: RecyclerView.ViewHolder, view: View) {}
open fun onPageScrollStateChanged(state: Int) {}
open fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) {}
open fun onPageSelected(position: Int) {}
}
新增了以上的接口 那个view的拖动的进度可以监听 ViewerCallbackAdapter onDrag回调的fraction的值. 0-1 onRelease 和 onRestore 分别表示下拽松手页面还原或者关闭的回调 viewPager 滑动的回调也暴露出来了。 横向列表阅览可以关联滑动. 可以通过调用 ImageViewerActionViewModel setCurrentItem 切换当前项
` new ImageWatcher.IndexProvider() { private View view;