css
  • gwt
  • resources
  • uibinder
  • 2010-03-12 74 views 4 likes 
    4

    我想使用UiBinder制作一个GWT小部件。所以,我提出:GWT UiBinder不加载样式表

    UserPanel.ui.xml这样的:

    <?xml version="1.0" encoding="UTF-8"?> 
    <ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' 
        xmlns:g='urn:import:com.google.gwt.user.client.ui'> 
    
        <ui:with field="res" type="com.example.resources.UserPanelResources" /> 
    
        <g:VerticalPanel styleNames='{res.userpanel.main}'> 
         ...some other widgets go here... 
        </g:VerticalPanel> 
    </ui:UiBinder> 
    

    UserPanel.css这样的:

    .main { 
        width: 1000px; 
        background-color: #f9f9fa; 
        padding: 15px 10px; 
        font-family: "Georgia"; 
    } 
    

    和UserPanelResources.java,如:

    public interface UserPanelResources extends ClientBundle { 
        public interface UserPanelCss extends CssResource { 
         String main(); 
        } 
    
        @Source("css/userpanel.css") 
        UserPanelCss userpanel(); 
    } 
    

    所有文件和软件包就在他们的位置,因为一切都编译得很好。但是当我运行开发模式时,样式不适用!我尝试了许多不同的方法,但仍然无法正常工作。

    我注意到的是,在HTML中,VerticalPanel被赋予由GWT模糊处理的类名,但CSS不会发送给浏览器 - 事实上,GWT甚至不会要求它。

    我错过了什么吗?

    回答

    7

    好吧,我找到了解决方案。

    原来是未注入UserPanelCss。

    的解决方案是在UserPanelResources,JAVA:

    public interface UserPanelResources extends ClientBundle { 
        public final static UserPanelResources INSTANCE = GWT.create(UserPanelResources.class) 
    
        public interface UserPanelCss extends CssResource { 
         String main(); 
        } 
    
        @Source("css/userpanel.css") 
        UserPanelCss userpanel(); 
    } 
    

    而在UserPanel.java类只需添加:

    static { 
        UserPanelResources.INSTANCE.userpanel().ensureInjected(); 
    } 
    
    3

    我有我只是使用了CSS资源同样的问题在我的UiBinder文件中。

    我添加了一个黑客到我的小部件构造函数来解决它。以下是使用上述类名称的等效项:

     
        @Inject 
        UserPanel(UserPanelResources resources) { 
        resources.userpanel().ensureInjected(); 
        initWidget(BINDER.createAndBindUi(this)); 
        ... 
        } 
    
    相关问题