javafx中,我使用tableview和pagination联合使用,但是在渲染的时候,tableview会有一个左移动画的效果。
pagination中又没有类似于animation、translate等方法,网上也各种百度,谷歌都没有找到解决方法。然后问了最强AI,答案也不尽人意。开始的部分代码如下,渲染总是有动画。
public void init(){
pgaInputCard.setCurrentPageIndex(0);
pgaInputCard.setPageCount(10);
pgaInputCard.setPageFactory(new Callback<Integer, Node>() {
@Override
public Node call(Integer pageIndex) {
createPage(pageIndex);
return tblList;
}
});
}
private void createPage(Integer pageIndex) {
QueryWrapper<InputCard> wrapper = new QueryWrapper<>();
wrapper.orderByDesc("id");
if (txtInputCardName.getText() != null && !txtInputCardName.getText().trim().isEmpty()) {
wrapper.like("name", txtInputCardName.getText().trim());
}
wrapper.eq("deleted", 0);
Page page = inputCardService.page(new Page(pageIndex + 1, inputCardSize), wrapper);
List<InputCard> inputCards = page.getRecords();
ObservableList<InputCard> list = FXCollections.observableArrayList(inputCards);
tblList.setItems(list);
}
解决方案:在分页的时候,返回一个新的node,不返回tableview,如下:
pgaInputCard.setPageFactory(new Callback<Integer, Node>() {
@Override
public Node call(Integer pageIndex) {
createPage(pageIndex);
return new Pane();
}
});