你好SO和NativeScript。作为最初的建议,你应该考虑不仅要问一堆问题,还要展示你的方法以及迄今为止取得的成就。使用this guide,如果您希望收到对您的项目真正有帮助的答案,请遵循指导原则。 现在,让我试着回答你的一些问题。
1.)不确定是否询问如何以可视方式移动元素,或者例如如果您需要创建添加项目的逻辑以及favoriteItem的数组。我假设第一种情况: 您需要将元素从x和y坐标移至顶角。 Animations
page.js
var view = page.getViewById(""my-f-view");
view.animate({
translate: { x: 100, y: -100},
duration: 3000
});
当项目被窃听你或许可以通过靶向此动画。
2)您可以在ScrollView
<Page>
<ScrollView>
<StackLayout height="1600">
// some content
</StackLayout>
</ScrollView>
</Page>
3.把它包)要显示的数据,您可以使用ListView控件或中继器的列表。 例子: page.xml
<Page xmlns="http://schemas.nativescript.org/tns.xsd" navigatingTo="navigatingTo">
<ListView items="{{ myItems }}" itemTap="listViewItemTap">
<ListView.itemTemplate>
<Label text="{{ title || 'Downloading...' }}" textWrap="true" class="title" />
</ListView.itemTemplate>
</ListView>
</Page>
page.ts(注意这是打字稿的工程实例)
import { EventData, Observable } from "data/observable";
import { ObservableArray } from "data/observable-array";
import { Page } from "ui/page";
import { ItemEventData } from "ui/list-view";
import frameModule = require("ui/frame");
let viewModel = new Observable();
let myItems = new ObservableArray( {title: "Core Concepts"},
{title: "User Interface"},
{title: "Plugins"},
{title: "Cookbook"},
{title: "Tutorials"} );
export function navigatingTo(args: EventData) {
var page = <Page>args.object;
viewModel.set("myItems", myItems);
// ListView will be updated automatically when new item is pushed.
myItems.push({title:"Publishing"});
page.bindingContext = viewModel;
}
export function listViewItemTap(args:ItemEventData) {
var itemIndex = args.index;
// example how to navigate details-page & pass the tapped item context
// frameModule.topmost().navigate({
// moduleName: "./details-page",
// context: myItems.getItem(itemIndex);
// });
}
4)简单地导入您的JSON文件,并将其解析到的数据类型你有望通过你的背景。参见this SO thread,其中类似的讨论存在