2016-06-14 8 views
0

コードを使ってViewコンポーネント(プラグイン)をページに配置して、ページ上のX¥Yに表示させることができますが、私はちょっと困りました。NativeScriptページで絶対要素を追加する方法

page.contentで追加しようとすると、layout \ render passに追加されてスペースを占めるようになります。

これは、「任意の」時刻に「任意の」ページに注入されるため、マークアップを制御することはできません(これは私が何を意味するのか知っていますか?)XMLはありません。 AbsoluteLayout内のすべてをラップするのは、ユーザーのアプリ\レイアウトでそれを強制することはできないからです。

思考は可能ですか?

答えて

5

これを行う最も簡単な方法は、JavaScriptコードにAbsoluteLayoutアイテムを作成し、アイテムとALをページコンテナに動的に挿入することです。あなたがこれは本当に簡単な方法行うにはしたくない場合は、

var AbsoluteLayout = require('ui/layouts/absolute-layout').AbsoluteLayout; 
var myAL = new AbsoluteLayout(); 
var myItem new myPluginItem(); 

// Set you left, right, top, bottom coords. 
myItem.top = x; 

// Add our item to the AbsoluteItem 
myAL.addChild(myItem); 

var frame = require('ui/frame'); 
var page = frame.topmost().currentPage; 
var LayoutBase = require('ui/layouts/layout-base').LayoutBase; 

page._eachChildView(function(view) { 
    if (view instanceof LayoutBase) { 
    view.addChild(myItem); 
    return false; 
    } 
    return true; 
}); 

しかし;:

は、コードは次のようなものになるだろう唯一の他の方法は実際には少し下のレベルに行くことです。 iOSビューコントローラ(page._ios.view)とアンドロイドビュー(page._nativeView)にネイティブでアクセスし、addView(https://developer.android.com/reference/android/view/ViewManager.html)やaddSubview(https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIView_Class/)などを使用してビューに手動で追加することができます。私はあなたが

AbsoluteLayout.setLeft(YourItem, LeftValue); または をそう

import {AbsoluteLayout} from 'ui/layouts/absolute-layout';

ようAbsoluteLayoutインポートし、露出した機能を使用して活字体のトップと左のプロパティを設定setLeftやセットトップ

することができます追加したいと思います

関連する問題