Ste*_*ott 0 layout plugins nativescript
我希望能够只需将View组件(插件)到通过代码的页面,并让它出现在一些X\Y中的网页...但我有点难倒.
任何通过page.content添加的尝试都会将其添加到layout\render pass中,因此占用空间.
所以这会在"任何"时间被注入"任意"页面,我无法控制将要使用的标记(知道我的意思吗?)没有XML,不幸的是答案不能只是将所有内容都包装在AbsoluteLayout中,因为无法对用户的app\layouts强制要求.
想法,甚至可能吗?
基本上,最简单的方法是动态地完全跨平台兼容,就是在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;
});
Run Code Online (Sandbox Code Playgroud)
但是,如果你不想这么做,那就是非常简单的方法; 唯一的另一种方法是实际上降低一点.您可以原生访问iOS视图控制器(page._ios.view)和android视图(page._nativeView),然后使用addView(https://developer.android.com/reference)等手动将其添加到视图中./android/view/ViewManager.html)或addSubview(https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIView_Class/).
| 归档时间: |
|
| 查看次数: |
1422 次 |
| 最近记录: |