我想使用SlidingListTile,但我遇到了一些问题。 我认为当我们使用水平滑动时,垂直滚动应该被锁定,因为在手机上很难完成滑动。
有人得到这样的情况吗?
提前致谢,
以下是我的代码的一部分:
slidingTile.swipedLeftProperty().addListener((obs, ov, nv) -> {
if (nv && edit != null) {
edit.accept(currentItem);
}
slidingTile.resetTilePosition();
});
slidingTile.swipedRightProperty().addListener((obs, ov, nv) -> {
if (nv && edit != null) {
edit.accept(currentItem);
}
slidingTile.resetTilePosition();
});
答案 0 :(得分:0)
确实,评论2.0 sample中存在错误。
CommentsPresenter
为ListCell
定义自定义ListView
,并从列表视图中的每个单元格BooleanProperty
创建binding :
commentsList.setCellFactory(cell -> {
final CommentListCell commentListCell = new CommentListCell(
service,...);
// notify view that cell is sliding
sliding.bind(commentListCell.slidingProperty());
return commentListCell;
});
显然,每个单元格的滑动属性可能会随时间变化,但只有最后一组才会占优势,因此它不会反映任何其他单元格的此属性的变化。
修复很简单:不要使用绑定,但是每个单元格的侦听器 将在该单元格滑动时设置值:
commentsList.setCellFactory(cell -> {
final CommentListCell commentListCell = new CommentListCell(
service,...);
// notify view that cell is sliding
commentListCell.slidingProperty().addListener((obs, ov, nv) ->
sliding.set(nv));
return commentListCell;
});
我已经提交了issue。