任何關於實現如下圖像的網格佈局的想法。
具有不同高度項目的網格佈局(React Native)
1
A
回答
1
答案取決於您要顯示的數據。我想這是一個無限列表,它向下滾動加載更多的項目。如果是這樣的話,你需要把3 ListView
-s內ScrollView
的標記看起來像這樣:
<View style={styles.wrapper}>
<ScrollView contentContainerStyle={styles.container}>
<ListView
contentContainerStyle={styles.list}
dataSource={this.state.dataSourceColumn1}
/>
<ListView
contentContainerStyle={styles.list}
dataSource={this.state.dataSourceColumn2}
/>
<ListView
contentContainerStyle={styles.list}
dataSource={this.state.dataSourceColumn3}
/>
</ScrollView>
</View>
包裝View
會幫助你伸展塊,以適應整個地區。但從造型點,你可以用Flexbox的解決任務:
wrapper: {
flex: 1
},
container: {
flexDirection: 'row',
paddingHorizontal: 5
},
list: {
flex: 1,
flexDirection: 'column',
paddingVertical: 10,
paddingHorizontal: 5
}
訣竅是,我們對待每一個列在容器內一排。玩填充和alignItems
造型,以實現一致的間距。
現在棘手的部分是妥善處理dataSource
。這個想法是在組件狀態下有3個dataSource
-s。通過這種方式,每當數據被提取時,您都必須手動將其分解爲三個來源。
注意隨附ListView
得心應手onEndReached
將不可用在這裏,所以你必須抓住用戶到達ScrollView
結束,以便在需要的時候取的新認識。但這是另一個我認爲已經在其他地方得到回答的問題。
如果網格是有限的,你不需要投入更多的項目,事情更簡單。只需按照上述方式拆分數據,並使用嵌套項目而不是ListView
-s即可使用3 View
-s。其原因在於ListView
提供了一種設置rowHasChanged
條件的方法,該條件通過永不呈現未更改的列表項目來提高性能。如果名單是有限的,你並不需要那麼做。
相關問題
- 1. MaterializeCSS - 具有不同高度的網格佈局
- 2. 柔性網格佈局,具有柔性方向行和不同高度的行
- 3. React native SectionList佈局
- 4. 使用流體基線網格不同網格高度的網格佈局
- 5. 填充父項但具有相同高度的行的表格佈局
- 6. React Native的佈局問題
- 7. 在React Native中設置表格佈局
- 8. 具有不同高度塊的三列布局
- 9. 項目不能跨越網格佈局
- 10. 在React-Native中可以更高效地實現此網格佈局嗎?
- 11. 如何有單元高度不同的網格佈局組件在Unity
- 12. 具有相同高度和表格風格的流體佈局div
- 13. css佈局高度問題與網格類似的佈局
- 14. React-native - 有條件地設置高度
- 15. 具有不同單元大小的Android網格佈局
- 16. HTML網格佈局具有不同的列每行
- 17. 產品網格,項目是不同的高度
- 18. 在現有的React Native iOS項目中安裝React-Native Android?
- 19. 使工具欄具有網格佈局
- 20. 爲具有不同項目佈局的ListView創建ViewHolders
- 21. Bootstrap - 列表項目的網格佈局
- 22. 如何讓我的佈局具有相同高度的TableRows?
- 23. ImageView應該與右側的佈局具有相同的高度
- 24. 不同高度的流動框佈局
- 25. 具有不同縮略圖高度的自舉網格
- 26. 如何讓兩個不同的佈局具有相同的高度?
- 27. 具有不同高度的Android設備需要相同的佈局文件夾
- 28. 全屏幕的Android佈局與具有相同高度
- 29. 如何讓佈局具有相同的高度?
- 30. 電子郵件CSS - 項目的網格,具有不同的高度。 (沒有JS,沒有CSS3等)