GWT g: Anchor не отображается как ссылка - PullRequest
1 голос
/ 14 октября 2011

Я только начал изучать подход UiBinder и у меня возникла глупая проблема с g:Anchor.Всякий раз, когда я создаю Anchor непосредственно из кода Java, он отображается как «обычная ссылка», поэтому он синий, подчеркнут, а когда я перемещаю указатель мыши на него, он переключается с I-Beam на обычную стрелку.

Когда я использую UiBinder и определяю свой пользовательский интерфейс следующим образом:

<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
    xmlns:g="urn:import:com.google.gwt.user.client.ui">
    <g:Anchor ui:field="anchor" />
</ui:UiBinder> 

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

<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
    xmlns:g="urn:import:com.google.gwt.user.client.ui">
    <g:Anchor ui:field="anchor" href="javascript:;" />
</ui:UiBinder> 

Существует ли "правильный" подход для достижения того же поведения без копирования, которое href атрибут везде?

1 Ответ

7 голосов
/ 14 октября 2011

См. http://code.google.com/p/google-web-toolkit/issues/detail?id=4502

Но дело в том, что вы не должны использовать Якорь, если у вас нет href для его установки.Если вы хотите что-то похожее на якорь, но не ссылающееся на какой-либо URL, используйте Label или HTML с соответствующим стилем и ClickHandler;не злоупотребляйте якорями за то, что не является ссылками.

...