2015-10-18 8 views
5

これはListViewのJSON Apiから返されたアイテムのリストを表示するために使用するコードです。React-native ListViewはすべてのコンテンツを表示せず、下に戻る(IOS)

render(){ var listHeight = this.state.itemCount ? ((this.state.itemCount) * 115) : 0; 
     var itemsHeight = 460; 

     itemsListView = (<ListView bounces={true} style={{height: itemsHeight}} contentContainerStyle={{height: listHeight}} 
      dataSource={this.state.dataSource} 
      renderRow={this.renderRow.bind(this)} automaticallyAdjustContentInsets={false} initialListSize={4} />); } 

ただし、ListViewコンポーネントで最後の1つまたは2つのアイテムを表示することはできません。以下に示すように

を(装置が横向きにある場合より多くのコンテンツをトリミング)でrenderRow方法は、高さ115の行を返す:

return (
<TouchableHighlight onPress={() => this.rowPressed(rowData)} 
    style={{height: 115}}>...</TouchableHighlight> 

すべての行を表示するリストビュースタイルとcontentContainerStyleを設定する正しい方法は何ですか両方のデバイスの向きで?

答えて

3

編集:オリエンテーションが変更されたとき、またはランドスケープのときに問題が発生しました。この回答はおそらくその問題を解決しません。しかし、もし助けがあれば、今はここに残しておきます。

下の項目が完全に表示されていなかったListViewでも同様の問題がありました。私はスクロールエリアの高さをのデバイスの高さに設定し、ヘッダーやその他のものの高さを上に置いてに設定します。このよう

const { 
    Dimensions, 
    ListView, 
    StyleSheet 
} = React; 

const Viewport = Dimensions.get('window'); 

... 

render() { 
    return (
    <ListView ... style={styles.listView} /> 
) 
} 

... 

let styles = StyleSheet.create({ 
    listView: { 
    height: Viewport.height 
    } 
}); 

また、あなたが最初にそれを試すことができますので、あなたの問題を解決することができ、スタイルflex: 1

+4

こんにちは、すべての親コンポーネントにフレックス:1を設定すると問題が解決しました。ありがとう。 – meteorite

+1

ドキュメントに明示的には記載されていませんが、ListViewや他のScrollViewsの高さが0より大きい親を持つ必要があります。これを行うには、 'flex:1'を設定する方法があります。 – CallMeNorm

0

質問に完全には答えられませんが、何かを助けるかもしれません。私は上、左、右を設定しましたが、下段ではなく、スクロールビューをフルハイトにしました。

関連する問題