我想要实现的目标:我希望在可滚动布局(Recyclerview
和GridlayoutManager
)内部有一个视图,其中包含tile(Views)。拖放RecyclerView
内的项目应调整图标的位置并与其他元素交换。当拖动开始时,RecyclerView
上方的图标将更改为垃圾桶图标,将视图拖动到此图标会将其从此RecyclerView
中删除。
我试过这个excellent tutorial,但由于Recyclerview
仅使用ItemTouchHelper.Callback
元素作为可能的目标,因此我找不到如何处理Recycler.ViewHolder
之外的拖动的方法
如果视图移出边界,方法interpolateOutOfBoundsScroll()
会给出反馈,但只返回屏幕外的总大小,但没有坐标。此外,尝试将视图拖出Recyclerview
总是会导致切割视图,使其通过Recyclerview
的边框。
有没有人知道如何才能达到这种效果?
答案 0 :(得分:7)
您只需为RecyclerView的父级设置此属性即可实现此目的:
android:clipChildren="false"
编辑:感谢Adam Katz,我不知道为什么,但有时您必须将它添加到RecyclerView以使其工作:
android:clipToPadding="false"
答案 1 :(得分:4)
您受RecyclerView
边界的约束。您有几种选择:
将RecyclerView
的布局高度设为match_parent
并位于上方视图之上(是Toolbar
吗?)并添加粘性标题大小相同,透明布局为空。这样你就可以拖动它,看看漂浮在那里的物品。
不要将项目拖动到太靠近合法右上方项目的垃圾桶图标,而是长按一次以选择项目(并应用像复选标记或红色面具这样的信号)并使垃圾可以出现并删除uppon点击(并允许多项删除)