在我的NativeScript项目中,我想包含RecyclerViewAndroid支持库中的内容。我将依赖项包括在app/App_Resources/Android/app.gradle
:
// Uncomment to add recyclerview-v7 dependency
dependencies {
compile 'com.android.support:recyclerview-v7:+'
}
从git issue#2295和其他相关问题中,我读到tns-platform-declarations可以提供本机android / ios库的定义文件的内容。所以我安装了它们并遵循了tns平台声明文档
我想编译以下示例代码段:
import { ContentView } from "ui/content-view";
declare var android: any;
export class OptimizedListView extends ContentView {
private _android: android.support.v7.widget.RecyclerView;
public _createUI() {
this._android = new android.support.v7.widget.RecyclerView(this._context);
}
};
声明var android以上类似内容可清理的第二个参考RecyclerView。但是,仍然存在以下有关RecyclerView的顶级参考错误:
消息:“名称空间'android.support.v7.widget'
没有导出的成员’RecyclerView’。”
我也尝试声明RecyclerView类没有成功:
export declare class RecyclerView extends ContentView {}
我知道事实,tns-platform-declarations
直到为止都有定义android.support.v7.widget
。
将“ noEmitOnError”
设置为false的解决方法感觉不正确。
那么,如何在android.support.v7.widget.RecyclerView
没有编译问题的情况下将此声明扩展到?
版本:
“ nativescript-dev-typescript”:“ ^ 0.3.2”
“ tns平台声明”:“ ^ 2.4.0-2016-09-28-1”
“ typescript”:“ ^ 2.1.1”
“ tns-core-modules”:“下一个”
最终,我根本不赞成tns-platform-declarations
,因为性能非常糟糕(特别是如果您的开发机中的RAM小于等于8GB)。
我的解决方案是定义一个自己的my-typings.d.ts
文件(例如,在项目根目录中),在其中定义扩展类型RecyclerView
。随着tsconfig.json违约应该自动被追上了tsc。否则可以添加exclude/include
或files表达式。
然后,您可以放置一个/// <reference path="path/to/RecyclerView/file.d.ts" />内部,以便ambient global namespaceTypescript
编译器可以找到以下内容。
declare namespace android {
namespace view {
namespace ViewGroup {
namespace LayoutParams {
const MATCH_PARENT;
const WRAP_CONTENT;
}
}
class ViewGroup {
}
}
namespace support.v7.widget {
namespace RecyclerView {
type AdapterImpl = {
onCreateViewHolder(parent: android.view.ViewGroup, viewType: number): ViewHolder;
onBindViewHolder(holder: android.support.v7.widget.RecyclerView.ViewHolder, position: number): void;
getItemCount(): number
};
class Adapter {
static extend(AdapterImpl): { new () }
}
class LayoutParams {
constructor(width: any, height: any);
}
class ViewHolder {
static extend: any;
}
}
class RecyclerView {
constructor(context: any);
setAdapter(Adapter): void;
setLayoutManager(LinearLayoutManager): void;
}
class LinearLayoutManager {
constructor(context: any);
}
}
}
基本上,名称空间可用于模拟嵌套的对象属性(例如android.view.xxx)。如果内部类是用Java定义的(Typescript似乎禁止嵌套class语句),这也是这种方式。
在实际使用类型的情况下,我还必须定义一个与名称空间同名的类android.view.ViewGroup。否则你会得到错误
没有出口会员xxx
,即使使用显式声明了类类型export(也没有必要,因为已经全局声明了名称空间)。
对于使用扩展本机Java类型的特殊情况extend,我为相关类定义了一个静态方法,例如static extend(AdapterImpl): { new () }
,其返回类型可以使用实例化new。
希望对其他类似问题有所帮助。
如何同时使用maven-flatten-plugin和maven-shade-plugin? 我使用、、来管理多模块项目的版本。 为了部署可共同消耗的工件,我使用maven-flatten-plugin生成一个扁平的pom,使${revision}成为实际值。 但是maven-shade-plugin在${修订版}不变的情况下生成了一个减少的pom。 如何指定 maven-shade-插件以使用扁
本文向大家介绍JavaScript跨平台的开源框架NativeScript,包括了JavaScript跨平台的开源框架NativeScript的使用技巧和注意事项,需要的朋友参考一下 NativeScript是一款使用JavaScript语言来构建跨平台原生移动应用的开源框架,支持iOS、Android和Windows Phone。且NativeScript的使用没有过多繁杂的要求,只需使用自己已
我正在逐个迭代字符串对象列表中的元素: 在这里,每次我调用list上的get()时,列表都会从其一端一直迭代到第i个元素——因此上面循环的复杂性是O(n^2)。 是a.)对于增强型for循环,与上面相同,还是b.)对于循环,将指针保持在最后一个指针所在的位置,因此下面循环的复杂性是O(n)? 如果上面的情况(b)——我想是这样的——在列表上使用迭代器有什么好处吗。这是简单的迭代--没有回头路 蒂亚
ZGC 或 Z 垃圾收集器是在 Java 11 中引入的,作为一种低延迟垃圾收集机制。ZGC 确保垃圾收集暂停时间不依赖于堆大小。无论堆大小是 2MB 还是 2GB,它都不会超过 10 毫秒。 但是 ZGC 在将未使用的堆内存返回给操作系统方面存在限制,例如 G1 和 Shenandoah 等其他 HotSpot VM GC。以下是使用 Java 13 完成的增强功能: ZGC 默认将未提交的内存
我有一个手风琴,它在我的页面内工作得很好。当你点击标题时,隐藏的div会显示,当你再次点击它时,它会再次隐藏。我想通过增加一个功能来增强手风琴,使手风琴一次只显示一个项目。换句话说,如果我打开了一个项目,并单击另一个标题,则当前打开的项目将自动关闭。 这是HTML 这是我的jQuery代码 如您所见,我有一个main(div class=“cap”)后跟一个(div class=“capitalo
除了agent和环境之外,强化学习的要素还包括策略(Policy)、奖励(reward signal)、值函数(value function)、环境模型(model),下面对这几种要素进行说明: 策略(Policy) ,策略就是一个从当环境状态到行为的映射; 奖励(reward signal) ,奖励是agent执行一次行为获得的反馈,强化学习系统的目标是最大化累积的奖励,在不同状态下执行同一个行