fix: 解决数据包页面在加载超多数据包时卡顿的问题 (#5162)
This commit is contained in:
@@ -48,14 +48,12 @@ public final class DatapackListPage extends ListPageBase<DatapackListPageSkin.Da
|
|||||||
|
|
||||||
public DatapackListPage(WorldManagePage worldManagePage) {
|
public DatapackListPage(WorldManagePage worldManagePage) {
|
||||||
this.worldDir = worldManagePage.getWorld().getFile();
|
this.worldDir = worldManagePage.getWorld().getFile();
|
||||||
|
|
||||||
datapack = new Datapack(worldDir.resolve("datapacks"));
|
datapack = new Datapack(worldDir.resolve("datapacks"));
|
||||||
datapack.loadFromDir();
|
|
||||||
|
|
||||||
setItems(MappedObservableList.create(datapack.getPacks(), DatapackListPageSkin.DatapackInfoObject::new));
|
setItems(MappedObservableList.create(datapack.getPacks(), DatapackListPageSkin.DatapackInfoObject::new));
|
||||||
|
|
||||||
FXUtils.applyDragListener(this, it -> Objects.equals("zip", FileUtils.getExtension(it)),
|
FXUtils.applyDragListener(this, it -> Objects.equals("zip", FileUtils.getExtension(it)),
|
||||||
mods -> mods.forEach(this::installSingleDatapack), this::refresh);
|
mods -> mods.forEach(this::installSingleDatapack), this::refresh);
|
||||||
|
|
||||||
|
refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void installSingleDatapack(Path datapack) {
|
private void installSingleDatapack(Path datapack) {
|
||||||
@@ -74,9 +72,7 @@ public final class DatapackListPage extends ListPageBase<DatapackListPageSkin.Da
|
|||||||
public void refresh() {
|
public void refresh() {
|
||||||
setLoading(true);
|
setLoading(true);
|
||||||
Task.runAsync(datapack::loadFromDir)
|
Task.runAsync(datapack::loadFromDir)
|
||||||
.withRunAsync(Schedulers.javafx(), () -> {
|
.withRunAsync(Schedulers.javafx(), () -> setLoading(false))
|
||||||
setLoading(false);
|
|
||||||
})
|
|
||||||
.start();
|
.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user