0

OK、Gwt または Gwtp でウィジェットの Css を設定するには、次のようにします。

-1. gwt コードから直接。例: label1.getElement().getStyle().setBackground("blue");
-2. UiBinder xml ファイルに「ui:style」を含めますが、この css はその UiBinder にのみ表示されます
-3. UiBinder xml ファイルに「ui:width」を含めると、すべての UiBinder に表示されます
 -そして、Css を UiBinder のウィジェットに直接設定する方法はたくさんあります。

私を混乱させたのは、私が使用した場合、ex

<ui:with field='res' type="com.myproj.client.MyResource" /> 

&そうであればmyResource.css.gwt-TabLayoutPanel「addStyleNames」を使用する必要はありません。たとえば、<g:TabLayputPanel />CSSを完全に認識できます。

ただし、追加.gwt-ScrollPanelしてmyResource.css使用して<g: ScrollPanel />も何も起こりませんでした。

したがってpublic interface MyCssResource extends CssResource、 を作成してから に追加するString gwt-ScrollPanel();必要がありMyCssResourceます。-しかし、Java Eclipseではメソッド名にハイフンを使用できないため、 String gwtScrollPanel();.

最後に、exに追加addStyleNamesする必要があります。そうすれば機能します。<g: ScrollPanel /><g: ScrollPanel addStyleNames="{res.css.gwtScrollPanel}" />

.gwt-TabLayoutPanelこれは、で使用したい場合MyCssResourceは、ハイフンを削除する必要があることも意味-します。これにより、コードに矛盾が生じます。

それで、誰かがここで何が起こっているのか説明できますか? 私は混乱しています?

4

2 に答える 2

2

注意すべき唯一のことは、GWT は、ui-binder で then を使用するとクラス名を難読化するということです。例えば:

 <ui:style>
   .gwtTabLayoutPanel {}
 </ui:style>
 <g:TabLayoutPanel addStyleNames="{style.gwtTabLayoutPanel}" />

.gwtTabLayoutPanel.AB最終的に挿入されたスタイルシートのような名前に変更されます。

しかし、ほとんどの GWT ウィジェットは、難読化されていないクラス名でスタイル設定されているため、ui-binders ファイルでそれらを使用するには、GWT コンパイラーがクラス名を難読化するのを防ぐために、外部として定義する必要があります。

 <ui:style>
   @external .gwt-TabLayoutPanel;
   .gwt-TabLayoutPanel {}
 </ui:style>
 <g:TabLayoutPanel />
于 2013-10-01T07:58:28.610 に答える
1

これは、TabLayoutPanel を作成すると、.gwt-TabLayoutPanel という既定のクラスがあるためです。したがって、そのクラスを手動で TabLayoutPanel に追加する必要はありません。TabLayoutPanel を作成するだけで、クラス「.gwt-TabLayoutPanel」が既に存在することがわかります。

ここに画像の説明を入力

ただし、ScrollPanel には .gwt-ScrollPanel という既定のクラスが付属していません。それは単なるdivです。ScrollPanel を作成してみてください。最初に追加されたクラスはありません。スクリーンショットを参照してください

ここに画像の説明を入力

.gwt-ScrollPanel というクラスを追加する場合は、手動で行う必要があります。

于 2013-10-01T07:46:24.237 に答える