Я разрабатываю приложение чата на java, и я хочу использовать функцию, используемую facebook для извлечения истории чата, когда пользователь прокручивает вверх. Я попробовал действие «на прокрутке», которое срабатывает при каждом прокрутке вверх или вниз по полосе прокрутки. Теперь я хочу выполнить событие Fire action только в том случае, когда полоса прокрутки достигает вершины, как в поле чата facebook.Как запустить событие при прокрутке вверх, javafx
2
A
ответ
0
Вот пример того, что вы хотите. Я надеюсь, что это поможет вам.
import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.ScrollPane;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class ScrollUtil extends Application
{
private boolean scrollToBottom = false;
private boolean scrollToTop = false;
public static void main(String[] args)
{
launch(args);
}
@Override
public void start(final Stage stage) throws Exception
{
final VBox root = new VBox();
final ScrollPane scrollPane = new ScrollPane();
final VBox vBox = new VBox();
vBox.setAlignment(Pos.BOTTOM_CENTER);
scrollPane.setContent(vBox);
scrollPane.setHbarPolicy(ScrollPane.ScrollBarPolicy.NEVER);
Button button = new Button("add");
Button button3 = new Button("scroll up");
button3.setOnAction(new EventHandler<ActionEvent>()
{
@Override
public void handle(ActionEvent actionEvent)
{
scrollToTop = true;
scrollPane.setVvalue(scrollPane.getVmin());
System.out.println("vmin= "+scrollPane.getVmin() + "; vmax = " + scrollPane.getVmax() + "; vvalue" + scrollPane.getVvalue());
}
});
button.setOnAction(new EventHandler<ActionEvent>()
{
@Override
public void handle(ActionEvent actionEvent)
{
vBox.getChildren().add(new Label("hallo"));
scrollToBottom = true;
//System.out.println(scrollPane.getVmin() + "; max = " + scrollPane.getVmax() + "; " + scrollPane.getVvalue());
}
});
scrollPane.setVvalue(scrollPane.getVmax());
scrollPane.vvalueProperty().addListener(new ChangeListener<Number>()
{
@Override
public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue)
{
if(scrollToBottom)
{
scrollPane.setVvalue(scrollPane.getVmax());
scrollToBottom = false;
}
if(newValue.doubleValue() ==0)
{
vBox.getChildren().add(new Label("hallo"));
System.out.println("min value ="+scrollPane.getVmin());
//scrollPane.setVvalue(scrollPane.getVmin());
scrollToTop = true;
System.out.println("now get the chat history");
}
}
});
Button button2 = new Button("scroll");
button2.setOnAction(new EventHandler<ActionEvent>()
{
@Override
public void handle(ActionEvent actionEvent)
{
scrollPane.setVvalue(Double.MAX_VALUE);
}
});
root.getChildren().addAll(scrollPane, button, button2, button3);
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
}
}
0
Предполагая, что у вас есть ScrollPane
, вы можете наблюдать vvalueProperty
его:
scrollPane.vvalueProperty().addListener(
(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) -> {
if(newValue.doubleValue() == 0){
System.out.println("AT TOP");
// load more items
}
});
и вы можете также перейти к нижней с
scrollPane.setVvalue(scrollPane.getVmax());
первоначально.
Смежные вопросы
- 1. Прокрутить только событие при прокрутке вверх
- 2. Прокрутка вверх и вниз при прокрутке вверх
- 3. RecyclerView прыгает вверх при прокрутке вверх
- 4. Перемещение вкладок вверх при прокрутке
- 5. uitableview autoupadate при прокрутке вверх
- 6. Удаление div при прокрутке вверх
- 7. скрытие меню при прокрутке вверх
- 8. Stellar.js сбой при прокрутке вверх
- 9. Добавить класс при прокрутке вверх
- 10. Swift: Ошибка при прокрутке вверх
- 11. DIV прыгает при прокрутке вверх
- 12. Как я могу запустить событие jQuery при прокрутке?
- 13. Как сделать UICollectionheader прозрачным при прокрутке вверх?
- 14. как остановить skrollr при прокрутке вверх
- 15. Как предотвратить запуск ngInfiniteScroll при прокрутке вверх
- 16. Как запустить событие мыши программно в JavaFX?
- 17. Скрытие заголовка при прокрутке вниз/показывается при прокрутке вверх
- 18. Бесконечный свиток при прокрутке вверх в div
- 19. Затухание на прокрутке вверх
- 20. Действие при прокрутке вверх от UITableview
- 21. элемент для анимации при прокрутке вверх, назад на прокрутке вниз
- 22. UISwitch сбрасывается при прокрутке вверх и вниз
- 23. UIWebView показывает пробелы при прокрутке вверх
- 24. Удалить класс при прокрутке вверх или вниз
- 25. Предотвращение функции при прокрутке вверх страницы
- 26. Listview падает при прокрутке вниз или вверх
- 27. Swift - сбой таблицы TableView при прокрутке вверх
- 28. Информация о виджетах, появляющихся при прокрутке вверх
- 29. Colorbox движение при прокрутке вверх и вниз
- 30. jquery mobile прокрутка вверх при прокрутке назад
Можете ли вы показать нам код? –