我有RecyclerView
ItemTouchHelper
。 RecyclerView是一个2/2网格,页面上有页眉和页脚。当用户拿起一个项目时,我希望该项目能够悬停在页脚上。但是,我不希望通过页脚看到回收器视图中的其他项目。
首先我尝试添加clipChildren
和clipPadding
,但这会产生一种情况,即RecyclerView项目在页脚中向上滚动,这是一个问题。我尝试为项目添加高程并带来ToFont,但那些从未工作过,因为回收者视图仍然在页脚后面,我尝试添加到前面的回收器视图本身,但然后再次所有项目再次成为页脚前面而不是只是拖了一个,有没有人有任何其他想法如何解决这个问题?
答案 0 :(得分:1)
首先,我要确保您的回收商视图有 var media = await DependencyService.Get<IShare>().PickImage();
_imageSource = media.GetStream();
canvas.InvalidateSurface();
。这样你就不需要将recyclelerview与页脚重叠 - 它可以在页脚上方结束,并且仍然允许它的孩子在界限之外绘制。
如果您有一个静态页脚,则可以在确定y轴移动得足够远以使当前项目与页脚相交时尝试调用bringToFront。然后当您移回范围或者回收视图完全滚动时,将页脚放回到前面。然而,这将特别容易出错;有点黑客。
编辑:
另一种方法是完全切断拖动项目和recyclerview之间的连接(这将在下拉部分进行一些工作),步骤大致是:
android:clipChildren="false"
答案 1 :(得分:0)
建议,在我的自定义TouchHelperCallback
中,我覆盖了onMove
方法并忽略了检查变量源和类型是否相同。因此,当我将项目拖过标题时,我可以将项目放在它上面。
@Override
public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder source, RecyclerView.ViewHolder target) {
//if (source.getItemViewType() != target.getItemViewType()) {
// return false;
//}
// Notify the adapter of the move
mAdapter.onItemMove(source.getAdapterPosition(), target.getAdapterPosition());
return true;
}
我没有修改过关于我从https://medium.com/@ipaulpro/drag-and-swipe-with-recyclerview-b9456d2b1aaf#.jl59rui0l
获取的拖放的教程