文档中心 > 千牛开放平台2.0

通用事件

更新时间:2017/08/11 访问次数:3021

QAP项目使用Nuke组件开发。Nuke 是一套基于 Weex 容器 与 Rax 开源渲染引擎的 Hybrid 页面 UI组件体系。 它充分利用了Weex Native渲染红利,具备出色的使用体验。

所有Nuke组件通常包含以下通用事件。除了通用事件外,不同组件还会有不同的事件,具体可参考nuke 文档。


触摸事件:onPress

目前仅 TouchableHighlightButtonTabbar.Item 具备 onPress,参看如下实例:

'use strict';
 
import {createElement, Component, render} from 'rax';
import {View, Text, TouchableHighlight, Modal} from 'nuke';
 
class TestComponent extends Component {
 
    onPress = ()=>{
        Modal.alert('press');
    }
    render(){
        return (
            <TouchableHighlight onPress={this.onPress} style={{alignItems:'center', padding: '50rem'}}>
                <View>点击我试试</View>
            </TouchableHighlight>
        );
    }
}
 
render(<TestComponent />);

长按事件:onLongPress

除了Button等特殊组件外,其他的组件都支持onLongPress事件,如:

'use strict';

import {createElement, Component, render} from 'rax';
import {View, Text, TouchableHighlight, Modal} from 'nuke';

class TestComponent extends Component {

    longClick = ()=>{
        Modal.alert('onlongpress')
    }
    render(){
        return (
            <View
                style={{flex:1}}
                onLongPress={this.longClick}>
                <Text>长按屏幕任何试试</Text>
            </View>
        );
    }
}

render(<TestComponent />);

是否可见:onappear/ondisappear

ListView的renderRow方法根节点的组件拥有ondisappear和onappear事件。

  • onappear:当一个元素放在滚动的列表里时,能通过这个事件侦听当前的元素是否在滚动的可见区域类。
  • ondisappear:当一个元素放在滚动的列表里时,能通过这个事件侦听当前的元素是否在消失在滚动区域里。如:
...
renderItem(item, index) {
    return (
        <TouchableHighlight ondisappear={()=>{Modal.alert('ondisappear')}} 
            onappear={()=>{Modal.alert('onappear')}} style={flex:1} >
            <Text style={app.itemTextList}>{item.title}</Text>
        </TouchableHighlight>
    );
}
...
render() {
    var self = this;
    return (
        <ListView 
            header={listHeader}
            fixHeader={false}
            loadMoreOffset="500"
            style={app.listContainer}
            refresh={listRefresh}
            onloading={self.onloading}
            onrefresh={self.onrefresh}
            renderSeparator={self.separate.bind(self)}
            renderRow={self.renderItem.bind(self)} 
            data={self.state.data}
            stop={self.state.stop}
            loadMore={self.handleLoadMore.bind(self)} 
          />

    )
}

FAQ

关于此文档暂时还没有FAQ
返回
顶部