2017-02-19 69 views
0

我正在使用反应本机Listview组件。如何测量页面中的列表视图行位置

如何测量一排的坐标? 我需要知道这些坐标的动画我正在做一个更复杂的视图。

我从NativeMethodsMixin找到了方法measure,但是我无法使它工作。我收到以下错误:小节不是函数

如何在需要时使用度量函数来获取行的坐标?

最少的起点:

class MyComponent extends Component { 
    constructor() { 
    super(); 
    const ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2}); 
    this.rows = [] 
    this.state = { dataSource: ds.cloneWithRows(['row 1', 'row 2'])}; 
    } 
    render() { 
    return ( 
     <ListView dataSource={this.state.dataSource} renderRow={ 
      (rowData) => 
       <TouchableWithoutFeedback 
        ref={(row) => { 
         this.rows[rowData] = row 
        }} 
        onPress={(event) => { 
         this.rows[rowData].measure(
          (x, y, width, height, pageX, pageY) => {}) 
        }}> 
        <Text>{rowData}</Text> 
       </TouchableWithoutFeedback> 
     } /> 
    ); 
    } 
} 

回答

0

我觉得TouchableWithoutFeedback无法测量。这是一个问题吗?我不确定这是否是预期的行为。

我通过在视图内包裹TouchableWithoutFeedback并测量视图来获得它的工作!

+1

确切地说,并非所有的东西都可以测量。你必须检查给定的组件是否实现度量。 – sodik

相关问题