Проблемы с настройкой ширины TableColumn в FXML с использованием CSS

Пожалуйста, ознакомьтесь с рекомендациями по обзору Apple, и ваши сомнения будут устранены.

Вы можете использовать сторонний платежный шлюз, если вы предлагаете физические товары, обслуживание за пределами приложения. Если вы продаете свой контент или услугу внутри приложения, вы должны использовать inapp-purchase.

В соответствии с рекомендациями по покупке валют ,

  1. Приложения, использующие система, отличная от API покупки приложений (IAP) для покупки контента, функциональных возможностей или служб в приложении, будет отклонена.
  2. Приложения, использующие IAP для покупки кредитов или других валют, должны использовать эти кредиты в приложение

Отправляя свои вопросы, ответы ниже

  1. Вы не можете использовать сторонний платежный шлюз для предоставления кредитов, которые используются в приложении
  2. Здесь вы можете посмотреть цену .
  3. Да, скорее всего, есть вероятность отклонения, если вы используете сторонний платежный шлюз вместо IAP для предоставления кредитов в приложение .

Вы можете прочитать рекомендации по обзору Apple для получения дополнительной информации.

-1
задан Pochmurnik 16 January 2019 в 10:46
поделиться

1 ответ

  1. -fx-pref-width устанавливает свойство TableColumnHeader (то же самое для -fx-min-width, см. Ниже). Установка этого свойства с помощью CSS глючит: JDK-8087822 .
  2. Вы можете использовать как fx:id, так и id. Если вы установите только fx:id, он также будет использоваться для id. Если вы установите оба, id используется для CSS, а fx:id используется для внедрения экземпляра в контроллер.
  3. Вы бы добавили класс стилей, если хотите одинаково стилизовать множество узлов.

Примечание. Следующее в основном касается деталей реализации JavaFX 11.0.1 (по крайней мере, я не смог найти документацию).

Проблема заключается в разнице между TableColumnBase.minWidth и Region.minWidth. Первый не подходит для CSS, потому что это не StyleableProperty. Последнее и именно это свойство определяют CSS-свойство -fx-min-width.

Когда вы делаете:

<TableColumn id="tableColumnVertical" text="" minWidth="40" maxWidth="40">

Вы устанавливаете свойство minWidth для TableColumn с помощью установщика свойства . Это не аналогично установке свойства CSS.

Однако Справочное руководство по JavaFX CSS в документирует , что TableColumn является частью подструктуры TableView. Это может указывать на то, что вы можете стилизовать столбец с помощью CSS. Но опять же, ни один из свойств на самом деле не является стилем; метод getCssMetaData() возвращает Collections.emptyList().

TableColumnBase действительно реализует Styleable (откуда берется getCssMetaData()), что означает, что он имеет следующий метод: getStyleableNode(). Реализация TableColumn этого метода после отображения TableView возвращает экземпляр TableColumnHeader . Это означает, что любой CSS, примененный к TableColumn, на самом деле применяется к TableColumnHeader. Именно этот последний класс расширяет Region и поэтому обладает свойством styleable minWidth. А из некоторого тестирования свойство minWidth экземпляра TableColumnHeader установлено как ожидалось.

Проблема заключается в том, что minWidth из TableColumnHeader не влияет на TableColumn. Реализация принимает во внимание только TableColumn.minWidth. И это, к сожалению, означает, что вы не сможете установить minWidth из TableColumn из CSS.

Такое поведение может быть ошибкой.

0
ответ дан Slaw 16 January 2019 в 10:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: