import React, { Component } from 'react';
import {
AppRegistry,
StyleSheet,
Text,
View,
Content,
TouchableOpacity,
ListView,
PixelRatio,
} from 'react-native';
var apps = {
"data": [
{
"shops": [
{
"name": "商品一"
},
{
"name": "商品二"
},
{
"name": "商品三"
},
],
"title": "分類(lèi)1"
},
{
"shops": [
{
"name": "商品一"
},
{
"name": "商品二"
}
],
"title": "分類(lèi)2"
},
{
"shops": [
{
"name": "商品一"
},
],
"title": "分類(lèi)3"
}
]
};
class rn25 extends Component{
constructor(props) {
super(props);
var getSectionData = (dataBlob, sectionID) => {
return dataBlob[sectionID];
};
var getRowData = (dataBlob, sectionID, rowID) => {
return dataBlob[sectionID + ':' + rowID];
};
this.state = {
dataSource: new ListView.DataSource({
getSectionData: getSectionData, // 獲取組中數(shù)據(jù)
getRowData: getRowData, // 獲取行中的數(shù)據(jù)
rowHasChanged: (r1, r2) => r1 !== r2,
sectionHeaderHasChanged: (s1, s2) => s1 !== s2
})
};
}
// 請(qǐng)求數(shù)據(jù)放在這
componentDidMount(){
// 加載數(shù)據(jù)
this.loadData();
}
// 加載數(shù)據(jù)
loadData(){
var json = apps.data;
var dataBlob = {},sectionIDs = [],rowIDs = [],cars = [];
for (var i in json) {
//step 1坎藐、把組數(shù)據(jù)放入sectionIDs數(shù)組中
sectionIDs.push(i);
//step 2抓歼、把組中內(nèi)容放dataBlob對(duì)象中
dataBlob[i] = json[i].title;
//step 3旷余、取出該組中所有的商品
shops = json[i].shops;
//step 4記錄每一行中的數(shù)據(jù)
rowIDs[i] = [];
//step 5、獲取行中每一組數(shù)據(jù)
for (var j in shops) {
//把行號(hào)放入rowIDs中
rowIDs[i].push(j);
//把每一行中的內(nèi)容放dataBlob對(duì)象中
dataBlob[i + ':' + j] = shops[j];
}
}
this.setState({
dataSource: this.state.dataSource.cloneWithRowsAndSections(dataBlob, sectionIDs, rowIDs)
});
}
render(){
return(
<View style={styles.outerViewStyle}>
<ListView
dataSource={this.state.dataSource}
renderRow={this.renderRow.bind(this)}
renderSectionHeader={this.renderSectionHeader.bind(this)}
/>
</View>
);
}
renderRow(rowData) {
return (
<TouchableOpacity activeOpacity={0.5}>
<View style={styles.rowStyle}>
<Text style={{marginLeft: 5}}>{rowData.name}</Text>
</View>
</TouchableOpacity>
);
}
// 每一組中的數(shù)據(jù)
renderSectionHeader(sectionData, sectionID) {
return (
<View style={styles.sectionHeaderViewStyle}>
<Text style={{marginLeft: 5, color: 'white'}}>{sectionData}</Text>
</View>
);
}
}
const styles = StyleSheet.create({
outerViewStyle: {
//占滿窗口
flex: 1,
},
headerViewStyle: {
height: 64,
backgroundColor: 'blue',
justifyContent: 'center',
alignItems: 'center'
},
rowStyle: {
flexDirection: 'row',
alignItems: 'center',
padding: 10,
borderBottomColor: 'grey',
borderBottomWidth: 1 / PixelRatio.get()
},
rowImageStyle: {
width: 70,
height: 70,
},
sectionHeaderViewStyle: {
backgroundColor: 'red',
height: 30,
justifyContent: 'center'
}
});
AppRegistry.registerComponent('rn25', () => rn25);
React Native ListView實(shí)現(xiàn)分組列表顯示
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門(mén)无虚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)缔赠,“玉大人,你說(shuō)我怎么就攤上這事友题∴脱撸” “怎么了?”我有些...
- 文/不壞的土叔 我叫張陵度宦,是天一觀的道長(zhǎng)踢匣。 經(jīng)常有香客問(wèn)我告匠,道長(zhǎng),這世上最難降的妖魔是什么离唬? 我笑而不...
- 正文 為了忘掉前任后专,我火速辦了婚禮,結(jié)果婚禮上输莺,老公的妹妹穿的比我還像新娘戚哎。我一直安慰自己,他們只是感情好嫂用,可當(dāng)我...
- 文/花漫 我一把揭開(kāi)白布型凳。 她就那樣靜靜地躺著,像睡著了一般嘱函。 火紅的嫁衣襯著肌膚如雪甘畅。 梳的紋絲不亂的頭發(fā)上,一...
- 那天实夹,我揣著相機(jī)與錄音橄浓,去河邊找鬼。 笑死亮航,一個(gè)胖子當(dāng)著我的面吹牛荸实,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播缴淋,決...
- 文/蒼蘭香墨 我猛地睜開(kāi)眼准给,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了重抖?” 一聲冷哼從身側(cè)響起露氮,我...
- 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎钟沛,沒(méi)想到半個(gè)月后畔规,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
- 正文 獨(dú)居荒郊野嶺守林人離奇死亡恨统,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
- 正文 我和宋清朗相戀三年叁扫,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片畜埋。...
- 正文 年R本政府宣布,位于F島的核電站掩宜,受9級(jí)特大地震影響蔫骂,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜锭亏,卻給世界環(huán)境...
- 文/蒙蒙 一纠吴、第九天 我趴在偏房一處隱蔽的房頂上張望硬鞍。 院中可真熱鬧慧瘤,春花似錦、人聲如沸固该。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)伐坏。三九已至怔匣,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間桦沉,已是汗流浹背每瞒。 一陣腳步聲響...
- 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像埠褪,于是被迫代替她去往敵國(guó)和親浓利。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
推薦閱讀更多精彩內(nèi)容
- (1) react-native-picker第三方組件 (1)安裝 (2) link (3) 引入 (4) 使用...
- 懸浮分組列表實(shí)現(xiàn)代碼如下: 實(shí)現(xiàn)效果如下:
- ListView 在移動(dòng)開(kāi)發(fā)中是個(gè)很常用對(duì)的控件苹威,不管是andorid 還是ios,在顯示長(zhǎng)列表視圖時(shí)驾凶,都是...
- 首先是數(shù)據(jù)結(jié)構(gòu)牙甫,上面是 header, 中間 3 個(gè) section cloneWithRowsAndSectio...
- 對(duì)于官方給的DataSource使用說(shuō)法可能對(duì)于單一的一組使用很容易處理,但是使用到分組就會(huì)讓人特別頭疼狭郑,這些奇怪...