У списка javafx на модальной стадии есть проблемы с прокруткой на нескольких моделях устройств. - PullRequest
0 голосов
/ 06 сентября 2018

На некоторых планшетах (samsung galaxy tab A - Android 7.1.1) и смартфонах (Honor 6) невозможно прокрутить вниз / вверх список из 7 элементов, каждый из которых включает изображение и небольшой текст. В этом случае этот список остается в том же состоянии. Но есть возможность выбрать один из отображаемых пунктов. Этот список отображается в модальном окне.

Это прекрасно работает со многими другими устройствами. У вас есть представление об этой проблеме?

Спасибо

Stage stagePopUpMenuPrincipal = new Stage();
stagePopUpMenuPrincipal.setTitle("title of the product");
VBox popUpWindow = new VBox();
stagePopUpMenuPrincipal.initModality(Modality.APPLICATION_MODAL);

        ...

listeDesAvatars = new ListView<String>();
listeDesAvatars.setMinWidth(POPUP_WIDTH_BYDEFAULT / 2.5);
listeDesAvatars.setMinHeight(POPUP_HEIGHT_BYDEFAULT / 2); 
for (String pseudo: User.listeDesPseudos){
             listeDesAvatars.getItems().add(pseudo);
}

listeDesAvatars.getSelectionModel().setSelectionMode(SelectionMode.SINGLE);

int iSelect = 0;
for (User user : User.listeDesUsers) {
    if (user.getPseudo().equals(GluonApplication.userCourant.getPseudo())){
            break;
    }
  iSelect++;
}

listeDesAvatars.getSelectionModel().select(iSelect); // it allows to select all the line including the avatar

     // Note that AvatarScoreCell method provides an item of the listview listeDesAvatars. Each item includes an image and some text. 
listeDesAvatars.setCellFactory(new Callback<ListView<String>, ListCell<String>>() {
                @Override
                    public ListCell<String> call(ListView<String> list) {
                    return new AvatarScoreCell();
                        }
                    });         

                avatarsListener = new ChangeListener(){
                 @Override
                 public void changed(ObservableValue obs, Object ov, Object nv){
                    for (User user : User.listeDesUsers) {
                        if (user.getPseudo().equals(nv)) {
                            GluonApplication.userCourant = user;
                                break;
                        }
                    }
                }};



 listeDesAvatars.getSelectionModel().selectedItemProperty().addListener(avatarsListener);
 listeDesAvatars.setMinSize(POPUP_WIDTH_BYDEFAULT- 3*DELTA_POPUP, POPUP_HEIGHT_BYDEFAULT - 2*DELTA_POPUP);

          ...

HBox zoneChoixPseudo= new HBox();
zoneChoixPseudo.setAlignment(Pos.CENTER);
HBox.setMargin(zoneChoixPseudo, new Insets(TOP_ZONE, RIGHT_ZONE, BOTTOM_ZONE, LEFT_ZONE));
zoneChoixPseudo.getChildren().addAll(listeDesAvatars,otherData);

        ....

popUpWindow.getChildren().addAll(zoneTitle, zoneChoixPseudo, ...);

Scene sceneMenu = new Scene(popUpWindow, POPUP_WIDTH_BYDEFAULT + DELTA_POPUP, POPUP_HEIGHT_BYDEFAULT);

stagePopUpMenuPrincipal.setScene(sceneMenu);
stagePopUpMenuPrincipal.show();
...