5

上記のパネルを使用して ui.xml ファイルのみを使用して絶対レイアウトを実行したいのですが、ドキュメントがコードに集中し、レイアウト言語を完全に無視しているため、これが可能かどうかは明確ではありません。チュートリアルではこれについて言及されていないため、不可能だと思いますが、確実に知りたいと思います。

4

2 に答える 2

9

これが古いことは知っていますが、AbsolutePanel の uibinder を更新しました

UiBinder テンプレートでの使用

UiBinder テンプレートの AbsolutePanel 要素は、要素を使用して絶対位置で子をレイアウトします。各 at 要素には、ピクセル単位の left 属性と top 属性が必要です。また、位置を指定せずにウィジェットの子を直接含めることもできます。

例えば:

<g:AbsolutePanel>
   <g:at left='10' top='20'>
     <g:Label>Lorem ipsum...</g:Label>
   </g:at>
   <g:Label>...dolores est.</g:Label>
 </g:AbsolutePanel>
于 2011-06-15T23:12:54.453 に答える
2

その通りです。現時点ではこれを行う方法はありません。これは、 で行われたように、いくつかのカスタム構文を導入することにより、将来の GWT リリースで対処される可能性DockLayoutPanelがあります。しかし、私はそれを疑っています - あなたは次のようなコードを書きたいと思うでしょう:

<g:AbsolutePanel ui:field="absolutePanel">
    <g:Button x="50px" y="50px">Test</g:Button>
</g:AbsolutePanel>

ただし、これは「Bean」(Java Beans の場合のように。メソッドがある場合は、UiBinder コードにgetSomethingCool書き込むことができ、適切な get/set メソッドを自動的に呼び出す) スタイルと競合します。メソッドがないためです。これは、コンパイル時に呼び出しを既存のメソッド (CSS ポジショニングなど) への適切な呼び出しに置き換えることで回避できます。しかし、これにより、ウィジェット/パネルのラッピングに依存する、さらに別のカスタム動作が導入されます。GWT 開発者はそれを避けたいと考えています。somethingCool="kewl"ButtonsetX/YsetX/Y

于 2010-05-14T17:06:13.827 に答える