2011-11-11 3 views
2

Titaniumで高さ100%のビューを追加しようとすると表示に問題があります。Androidでは正しく表示されますが、iOSでは正しく表示されません。ここでは単純化されたコードがあります:アンドロイド(正しい)のTitaniumで高さ100%のビューを追加するとiOSで機能しません

Ti.UI.setBackgroundColor('#000'); 

var win = Ti.UI.createWindow({ 
    title:'win', 
    backgroundColor:'#fff' 
}); 

var s = Ti.UI.createView({ 
    width:'100%', 
    height:'100%', 
    backgroundColor:'red', 
    layout: 'horizontal' 
}); 

var r = Ti.UI.createView({ 
    backgroundColor:'yellow', 
    width:300, 
    height:'100%' // problem 
}) 

s.add(r); 

win.add(s); 
win.open(); 

結果:iPadの Android

結果: iPad

それは私が有限数の高さを設定した場合、作業を行いますが、私ビュー全体の高さをカバーしたい。どうすればこれを達成できますか、なぜ100%の高さがiOSで動作しないのですか?

+0

注意してください、チタンプラットフォームは一度だけのアプリを構築するためのものではありません。アプリを構築する最善の方法はビルド1バックエンドで、両方のプラットフォームで異なるUIを作成するので、OSの目的に合ったものになります。 iPadでこれを行うには、splitwindowを使用することもできます:http://developer.appcelerator.com/apidoc/mobile/latest/Titanium.UI.iPad.SplitWindow-object.html –

答えて

1

おそらくviewviewに追加する必要があります。 yellow viewwindowに追加し、両方のビューにzIndexと指定すると、正しく動作します。それは左整列させるための

、レイアウトプロパティが存在しない文書によると、あなたがleft: 0;、ないlayout: 'horizontal'を使用する必要があります。http://developer.appcelerator.com/apidoc/mobile/latest/Titanium.UI.Window-object

var s = Ti.UI.createView({ 
    width:'100%', 
    height:'100%', 
    backgroundColor:'red', 
    zIndex: 1 
}); 

var r = Ti.UI.createView({ 
    backgroundColor:'yellow', 
    width:300, 
    height:'100%', // no problem 
    zIndex: 2, 
    left: 0 
}); 

win.add(r); 
+0

黄色のビューが中央に表示されます提案。 'layout: 'horizo​​ntal''をウィンドウに追加すると、何も表示されません。 – lzm

+0

add: 'left:0'、またはあなたの右になります。デフォルトでは、ビューや追加したものの中央に表示されます。 CSSスタイルの上/下/左/右を使用すると、正しく配置できます。これは高さと幅の両方でケース –

+0

また、レイアウトプロパティはドキュメントに表示されません:http://developer.appcelerator.com/apidoc/mobile/latest/Titanium.UI.Window-object。この質問にも合わせて投稿を更新しました –

関連する問題