В Биксби, есть ли способ отобразить изображения в окне выбора изображений в определенном порядке или отсортировать их по имени изображения? - PullRequest
0 голосов
/ 25 июня 2019

Я пытаюсь отобразить несколько изображений для пользователя, чтобы они могли выбрать любое из изображений, и я хочу, чтобы изображения были в определенном порядке или были отсортированы в соответствии с их именем. Но каждый раз при загрузке экрана выбора изображения кажутся случайными.

Вот как я передал изображения:

  default-init {
    intent {
      goal: Image
      value: Image {
        url: viv.core.Url("/images/img1.png")
      }
      value: Image {
        url: viv.core.Url("/images/img2.png")
      }
      value: Image {
        url: viv.core.Url("/images/img3.png")
      }
      value: Image {
        url: viv.core.Url("/images/img4.png")
      }
      value: Image {
        url: viv.core.Url("/images/img5.png")
      }
      value: Image {
        url: viv.core.Url("/images/img6.png")
      }
    }
  }

и это представление ввода:

  input-view {
    match: Image (this) {
      to-input: SelectImage 
    }

    message {
       template (Choose any image?)
    }

    render {
      image-picker (this) {
        size (Medium)
    }
  }
}    

Я хочу, чтобы они отображались в указанном порядке или были отсортированы по их названию (что в данном случае совпадает). Что мне делать?

1 Ответ

2 голосов
/ 27 июня 2019

Если вы укажете значение в модели действия, оно не в каком-либо порядке и будет случайным.

Простое решение - создать отдельное действие без ввода и использовать это действие в init по умолчанию. Затем в связанной функции JS верните массив объектов изображения. Порядок отображения будет порядок индекса массива.

Изменить секцию default-init

    default-init {
    intent {
      goal: GetDefaultImage
    }

Добавить действие GetDefaultImage

action(GetDefaultImage) {
  type(Search) 
  output(Image)
}

Связанный файл JS (свяжите его с файлом конечных точек)

module.exports.function = function getDefaultImage () {
  var result = []
  // result should be in the format of result[0].url = 'imageUrl1'
  //                                   result[1].url = 'imageUrl2'
  return result;
}
...