1

メインビューの上に3つのローダー、ロッカー、デバッグビューの非表示ビュー(touchEnabledとvisibleをfalse、zIndexを1に設定) (zIndex = 2)。可視プロパティを変更するとビューの中心位置が変更されることがあります(バグの可能性があります)

$.debugView.show = function() { 

    $.debugView.touchEnabled = $.debugView.visible = true; 

    $.debugView.zIndex = 3; 
}; 

$.debugView.hide = function() { 

    $.debugView.touchEnabled = $.debugView.visible = false; 

    $.debugView.zIndex = 1; 
}; 

この画面では、持っている隠されたビュー 'オーバー' 3:今

enter image description here

、私は「デバッグビューを開いています。各ビューは、このメソッドを持っている '上'

'、しかし、 何かそれは、それが位置を変えているようです(中央の場合は、デバイスの中心の代わりに左上にあるように)。代わりに、必要な結果の

enter image description here

enter image description here

私は不透明度の代わりに、Visibleプロパティを使用している場合は、それが正常に動作します。

これはSDKのバグの可能性がありますか?

<Alloy> 
    <Window> 
     <View id="content"/> 
     <View id="locker"/> 
     <View id="loader"/> 
     <View id="debugView"/> 
    </Window> 
</Alloy> 

これら4つのビューのすべては、私は完全に異なる実装と、あまりにもこれに気づいた幅または高さ(それがデフォルトとしてTi.UI.FILLを使用しています)

答えて

2

を持っていません。私はウィンドウに含まれているビューを1つしか持っていませんでした。

要素が隠れていると、左と上の計算が正しく行われていなかったようです。私はこの問題を解決するためにやった

は、使用して左の位置を計算することにより、左/トップの位置をハードコーディングすることで、この:私の場合75には要素が持つ幅である

$.content.left = (Ti.Platform.displayCaps.platformWidth - 75)/2; 

、それはよそうあなたのケースではもっと大きくなるでしょう。あなたは同じことを高さに対して行うことができます。

これはiOS専用ソリューションです。 Androidでは、DPIを考慮して計算する必要があります。

私はバグだと思っていますが、この解決策は私にとって完璧に機能します。私はJIRAを見て、それが既知の問題かどうかを確認することをお勧めします。そうでない場合は、問題の非常に具体的な説明をつけて提起することをお勧めします。クラシックは大部分を助けます。クラシックで再現できない場合は、合金の問題かもしれません。

+0

Thanks @ Ren Pot!私の場合は、サイズ計算を避けるために不透明度を使用し続けます。これは、JIRAチケットを作成するための方法です。 –

+1

FYI:https://jira.appcelerator.org/browse/AC-4706私はそこにあなたの答えを貼り付けました、それはあなたのために大丈夫ですか? –

+0

素晴らしい、問題はない –

関連する問題