2017-02-19 71 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

相關問題