использовать Uibinder CSS в Java, а не XML - PullRequest
4 голосов
/ 20 октября 2010

в моем ui.xml, у меня есть стиль как ниже

<ui:style src="../teststyle.css" />

, если я хочу программно использовать стиль внутри файла Java, а не ui.xml , в моем виджете, как вызвать .setStyleName (..), поскольку CSS скрыт

Ответы [ 2 ]

15 голосов
/ 20 октября 2010

Для использования стилей в вашем классе просмотра необходимо выполнить следующие шаги:

  • Определить интерфейс, расширяющий CssResource в вашем классе просмотра
interface Style extends CssResource {

    String myStyle();

}
  • Добавьте поле пользовательского интерфейса того типа, который вы только что определили в своем классе представления
@UiField
Style style;
  • В вашем файле ui.xml добавьте атрибут type к вашему <ui:style>элемент (тип должен соответствовать интерфейсу шага 1):
<ui:style type="com.example.MyView.Style">
  • Для каждого из классов css, к которым вы хотите получить доступ в своем классе представления, необходимо добавитьметод интерфейса Style (как с myStyle())

  • Теперь вы можете получить доступ к стилю через поле style (style.myStyle())

Надеюсь, это поможет.

2 голосов
/ 20 октября 2010

Если я правильно понимаю ваш вопрос, вы должны определить класс, который происходит от CssResource (вы, вероятно, уже сделали это). По вашему мнению, у вас может быть статический экземпляр этого класса (назовем его cssInstance). В конструкторе нужно позвонить cssInstance.ensureInjected(). Если вы сейчас хотите добавить или установить стиль, вы можете сделать это легко, например: Пример: anyWidget.addStyleName(cssInstance.styleBorder());

...