2016-10-28 18 views
0

完全なページを占めるAbsoluteLayoutを持っています。AbsoluteLayoutを使用した配置要素

UIは480

として幅を報告している私は、ラベルを作成し、240でそれを配置は、右の間でそれが途中期待

 titleLabel.text = "Label"; 
     titleLabel.width = 20; 
     titleLabel.height = 20; 

     layout.addChild(titleLabel); 

     AbsoluteLayout.setLeft(titleLabel, "240"); 
     AbsoluteLayout.setTop(titleLabel, "20");` 

オフセット?

ただし、右端に近いと表示されます。

リトル少し混乱...長方形としてラベルを考慮

答えて

0

setLeftは全体のビューと比較する矩形の左辺がかかります。あなたのケースでは、親ビューの幅は480で、子ビューの場合はsetLeft(ラベルは240)です。ラベルはレンダリングされ、左側が位置240から始まり、残りのラベルが描画されますそれに基づいて。たとえば、ラベルが50の幅を有している

次に、あなたはそれを240 - 50/2 = 215を設定する必要があります。

AbsoluteLayout.setLeft(titleLabel, "215") 
+0

はい、私はsetLeftを(期待)中間点でビューの開始/左エッジを設定する(ではありません中央に表示されます) - しかし、そのままでは、ビューは右端に非常に近くなります。実際にsetLeft(300)を実行すると、ページの右側の横にビューの右端が表示されます。これは実際には320と仮定します。これはDPIの問題ですか? – dashman

+0

これはdpi問題でした。私はplatform.screen.mainScreen.scaleでxを分割し、予想される位置を取得します。ありがとう。 – dashman

関連する問題